2014-04-28 8 views
16

मैं छवियों को सीधे काले और सफेद के रूप में पढ़ने की कोशिश कर रहा हूं।छवि पढ़ें ग्रेस्केल ओपनसीवी 3.0.0-dev

मैंने हाल ही में अपना ओपनसीवी संस्करण 3.0.0-dev पर अपडेट किया है, और जो कोड मैंने पहले उपयोग किया है वह अब काम नहीं करता है।

img = cv2.imread(f, cv2.CV_LOAD_IMAGE_GRAYSCALE) 

2,4 के लिए ठीक काम करता है, लेकिन नए संस्करण के लिए काम नहीं करता, क्योंकि इसमें कोई क्षेत्र CV_LOAD_IMAGE_GRAYSCALE है।

कोई सुझाव?

नोट: मुझे पता है कि cv2.imread(f,0) काम करेगा, लेकिन मुझे अपने कोड में अनामित स्थिरांक पसंद नहीं है। धन्यवाद!

+1

आप का प्रयास किया 'cv2.LOAD_IMAGE_GRAYSCALE' का प्रयास करें? मुझे लगता है कि सभी 'सीवी_' का नाम बदलकर – Micka

+0

किया गया था, मैंने कोशिश की, वहां नहीं। – elaRosca

उत्तर

21

ध्वज का नाम बदलकर cv2.IMREAD_GRAYSCALE कर दिया गया है। आम तौर पर बोलते हुए, झंडे के नामों को ऐसे तरीके से उपसर्ग किया जाता है जो उस कार्य से संबंधित होते हैं, जिसे वे संदर्भित करते हैं। (जैसे imread झंडे IMREAD_ के साथ शुरू, cvtColor झंडे COLOR_ के साथ शुरू, आदि)

+0

बहुत बढ़िया। स्पष्टीकरण के लिए धन्यवाद, शायद भविष्य में भी मदद करेगा। – elaRosca

+0

दस्तावेज़ीकरण को तदनुसार अपडेट किया जाना चाहिए: http://docs.opencv.org/trunk/modules/imgcodecs/doc/reading_and_writing_images.html?highlight=imread#Mat imread (कॉन्स स्ट्रिंग और फ़ाइल नाम, int झंडे) –

6

यह मेरे लिए काम करता

import cv2 
im_gray = cv2.imread('gray_image.png', cv2.IMREAD_GRAYSCALE) 
thresh = 127 
im_bw = cv2.threshold(im_gray, thresh, 255, cv2.THRESH_BINARY)[1] 
cv2.imwrite('blackwhite.png', im_bw) 
संबंधित मुद्दे