मैं एक पीएनजी फ़ाइल से 24 बिट आरजीबी छवि को अपने ओपनसीवी एप्लिकेशन में लोड कर रहा हूं।आरजीबी से ग्रेस्केल से ओपनसीवी छवि रूपांतरण खराब परिणाम देकर इमेड का उपयोग करते हुए
हालांकि छवि को imread
का उपयोग करके सीधे ग्रेस्केल के रूप में लोड करना बहुत खराब परिणाम देता है।
Mat src1 = imread(inputImageFilename1.c_str(), 0);
आरजीबी के रूप में आरजीबी छवि लोड हो रहा है और यह ग्रेस्केल में कनवर्ट एक बेहतर की तलाश में परिणाम देता है।
Mat src1 = imread(inputImageFilename1.c_str(), 1);
cvtColor(src1, src1Gray, CV_RGB2GRAY);
मुझे आश्चर्य है कि क्या मैं अपनी छवि प्रकार के लिए imread
का उपयोग कर रहा हूं। क्या किसी ने भी इसी तरह के व्यवहार का अनुभव किया है?
छवि imread
का उपयोग कर स्केल के लिए परिवर्तित यहाँ दिखाया गया है:
छवि cvtColor
का उपयोग कर स्केल के लिए परिवर्तित यहाँ दिखाया गया है:
ओपनसीवी में "रंग" छवि का अर्थ बीजीआर है। तो आपके कोड का दूसरा संस्करण सही नहीं है। इसे रंग रूपांतरण के लिए 'CV_BGR2GRAY' का उपयोग करना चाहिए। –
टिप्पणी के लिए धन्यवाद। मैंने सीवी_आरजीबी 2GRAY के बजाय छवि को CV_BGR2GRAY का उपयोग करके ग्रेस्केल में कनवर्ट करने का प्रयास किया, लेकिन एक ही परिणाम मिला। – tisch
क्या आप अपनी मूल छवि भी संलग्न कर सकते हैं? –