2016-11-17 16 views
6

मैं ओपनसीवी में नया हूं। मैं सामान्यीकरण से संबंधित कुछ प्रीप्रोकैसिंग करना चाहता हूं। मैं अपनी छवि को एक निश्चित आकार में सामान्य बनाना चाहता हूं। निम्नलिखित कोड का परिणाम मुझे एक काला छवि देता है। क्या कोई मुझे बता सकता है कि मैं वास्तव में क्या गलत कर रहा हूं? छवि मैं inputting हूँ एक काला/सफेद छविओपनसीवी पायथन: सामान्य छवि

import cv2 as cv 
import numpy as np 

img = cv.imread(path) 
normalizedImg = np.zeros((800, 800)) 
cv.normalize(img, normalizedImg, 0, 255, cv.NORM_MINMAX) 
cv.imshow('dst_rt', self.normalizedImg) 
cv.waitKey(0) 
cv.destroyAllWindows() 
+0

क्या आपकी छवि 8 बिट के अलावा बिटडिप का उपयोग कर रही है? यदि ऐसा है तो आपको इसे प्रदर्शित करने के लिए इसे 8 बिट में परिवर्तित करने की आवश्यकता होगी। – zeFrenchy

+0

img.dtype मुझे uint8 @zeFrenchy – kot09

+0

देता है मुझे आशा है कि आपका मतलब है कि छवि ग्रेस्केल है, वास्तव में काले और सफेद नहीं, अन्यथा सामान्यीकृत कुछ भी नहीं करेगा। क्या यह NORM_L2 के साथ काम करता है? – zeFrenchy

उत्तर

1

है के रूप में एक में देख सकते हैं: http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#cv2.normalize, वहाँ एक → dst कि का कहना है कि normalize फ़ंक्शन के परिणाम उत्पादन पैरामीटर के रूप में दिया जाता है है। फ़ंक्शन इनपुट पैरामीटर dst इन-प्लेस नहीं बदलता है।

import cv2 as cv 
import numpy as np 
path = r"C:\Users\Public\Pictures\Sample Pictures\Hydrangeas.jpg" 
img = cv.imread(path) 
normalizedImg = np.zeros((800, 800)) 
normalizedImg = cv.normalize(img, normalizedImg, 0, 255, cv.NORM_MINMAX) 
cv.imshow('dst_rt', normalizedImg) 
cv.waitKey(0) 
cv.destroyAllWindows() 
0

यह क्योंकि आप शायद img और normalizedImg में अलग अलग आकार का उपयोग कर रहे आप एक काले रंग की छवि दे रही है (cv.imshow('dst_rt', self.normalizedImg)self. में लाइन कोई गलती है)।

import cv2 as cv 

img = cv.imread(path) 
img = cv.resize(img, (800, 800)) 
cv.normalize(img, img, 0, 255, cv.NORM_MINMAX) 

cv.imshow('dst_rt', img) 
cv.waitKey(0) 
cv.destroyAllWindows() 
0

जब आप फोन cv.imshow() आप self.normalizedImg, normalizedImg के बजाय का उपयोग करें।

स्वयं। वर्ग के सदस्यों की पहचान करने के लिए प्रयोग किया जाता है और आपके द्वारा लिखे गए कोड में इसका उपयोग उपयुक्त नहीं है। इसे लिखित के रूप में भी नहीं चलाया जाना चाहिए। हालांकि मुझे लगता है कि यह कोड कक्षा परिभाषा से निकाला गया है, लेकिन आपको चर नामकरण में सुसंगत होना चाहिए और self.normalizedImgnormalizedImg से अलग है।

संबंधित मुद्दे