के साथ रंग गहराई में कमी मैं रंग गहराई स्केलिंग के माध्यम से रंग में कमी करना चाहता हूं।ओपनसीवी और एलयूटी
इस उदाहरण की तरह:
पहली छवि सीजीए संकल्प दूसरा ईजीए है तीसरे हैम है,,। मैं इसे सीवी :: LUT के साथ करना चाहता हूं क्योंकि मुझे लगता है कि यह करने का बेहतर तरीका है। मैं इस कोड के साथ ग्रेस्केल के साथ क्या कर सकते हैं:
Mat img = imread("test1.jpg", 0);
uchar* p;
Mat lookUpTable(1, 256, CV_8U);
p = lookUpTable.data;
for(int i = 0; i < 256; ++i)
p[i] = 16 * (i/16)
LUT(img, lookUpTable, reduced);
मूल:
रंग कम:
लेकिन मैं अजीब परिणाम प्राप्त अगर मैं रंग के साथ यह करने की कोशिश ..
इस कोड के साथ:
imgColor = imread("test1.jpg");
Mat reducedColor;
int n = 16;
for (int i=0; i<256; i++) {
uchar value = floor(i/n) * n;
cout << (int)value << endl;
lut.at<Vec3b>(i)[2]= (value >> 16) & 0xff;
lut.at<Vec3b>(i)[1]= (value >> 8) & 0xff;
lut.at<Vec3b>(i)[0]= value & 0xff;
}
LUT(imgColor, lut, reducedColor);
जहां से मैं पूरी समझ और एलयूटी का उपयोग कर सकता हूं? मैंने opencv दस्तावेज देखा लेकिन यह सिंटैक्स के लिए सिर्फ सख्त है। यदि आप इस 'LUT छवि' के मानों को सहेजना चाहते हैं तो आप क्या करते हैं और इसे अन्य मानों पर लागू करना चाहते हैं – AHF
LUT का उद्देश्य एक लुकअप तालिका के अनुसार छवि के रंगों को बदलना है। इसमें विभिन्न उद्देश्यों हो सकते हैं, जैसे रंग संकल्प को छवि विभाजन में प्रीप्रोकैसिंग चरण के रूप में कम करना। कुछ अतिरिक्त जानकारी के लिए यह विकिपीडिया आलेख देखें: http://en.wikipedia.org/wiki/Colour_look-up_table – xperroni
एक ही LUT को विभिन्न छवियों में बदलने के लिए, आप उपरोक्त 'colorReduce()' फ़ंक्शन को संशोधित करने के लिए संशोधित कर सकते हैं लुकअप टेबल को तर्क के रूप में संदर्भित करें, फिर तालिका को 'लुकअपटेबल()' या किसी भी अन्य विधि को उचित कॉल में गणना करें। – xperroni