में 'सफेद' पिक्सेल की गणना करें मैं ओपनसीवी बाइनरी छवि में सभी सफेद पिक्सेल गिनने की कोशिश कर रहा हूं।ओपनसीवी बाइनरी छवि (कुशलतापूर्वक)
whitePixels = 0;
for (int i = 0; i < height; ++i)
for (int j = 0; j < width; ++j)
if (binary.at<int>(i, j) != 0)
++whitePixels;
हालांकि, gprof मैं पाया है कि इस कोड का एक बहुत ही धीमी गति टुकड़ा, और कार्यक्रम में एक बड़ी अड़चन है के साथ की रूपरेखा के बाद: मेरे वर्तमान कोड इस प्रकार है।
क्या कोई ऐसी विधि है जो समान मूल्य की गणना कर सकती है?
क्या आपने ऊंचाई और चौड़ाई को बदलने का प्रयास किया था? मेरा मतलब चौड़ाई और फिर ऊंचाई पर लूपिंग है? यह लूप में सुधार कर सकता है, यह निर्भर करता है कि स्मृति में छवि को कैसे रखा गया है। –
क्या आप इसके बजाय() फ़ंक्शन पर सीधे छवि डेटा तक पहुंच सकते हैं? – jrok
जेरोक सुझावों के रूप में करना संभवतः तेज़ होगा। मुझे आश्चर्य है कि [यह faq प्रविष्टि] (http://opencv.willowgarage.com/wiki/faq#How_to_access_image_pixels) प्रासंगिक है। – Brian