रंग स्थान रंगों को दर्शाने का मॉडल है। रंगों का वर्णन करने के विभिन्न तरीके हैं। उदाहरण के लिए, RGB, CYMK, HSV, ग्रेस्केल आदि।
यहां, हमने 'imgproc.hpp' नामक एक नए हेडर का उपयोग किया है। यह 'imgproc.hpp' इमेज प्रोसेसिंग का संक्षिप्त नाम है। रंग स्थान परिवर्तित करने के लिए, हमें OpenCV के 'cvtColor()' फ़ंक्शन का उपयोग करने की आवश्यकता होती है। यह फ़ंक्शन 'imgproc' हेडर फ़ाइल में परिभाषित है। इसलिए हमने 'imgproc.hpp' शामिल किया है।
सबसे पहले, हमने दो मैट्रिक्स और दो विंडो घोषित कीं। ये इमेज लोड करने और दिखाने के लिए हैं। फिर हमने अपनी इमेज 'cat.jpg' को 'myImage' मैट्रिक्स में लोड किया। उसके बाद हमने 'cvtColor(myImage, myImage_Converted, COLOR_RGB2GRAY)' का उपयोग किया। यह लाइन 'myImage' के RGB रंग स्थान को ग्रेस्केल में परिवर्तित करती है और इसे 'myImage_Converted' मैट्रिक्स में संग्रहीत करती है।
'cvtColor() फ़ंक्शन का कच्चा रूप है -
cvtColor(Source Matrix, Destination Matrix, Color Space Conversion Code)
इस प्रोग्राम में, स्रोत मैट्रिक्स 'myImage' है, गंतव्य मैट्रिक्स 'myImage_Converted' है, और रंग स्थान परिवर्तन कोड COLOR_RGB2GRAY है।
निम्नलिखित प्रोग्राम OpenCV में RGB इमेज को ग्रेस्केल इमेज में परिवर्तित करता है।
उदाहरण
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, const char** argv) {
Mat myImage;
Mat myImage_Converted;
namedWindow("Actual_Image");
namedWindow("Converted_Image");
myImage = imread("cat.jpg");
cvtColor(myImage, myImage_Converted, COLOR_RGB2GRAY);
imshow("Actual_Image", myImage);
imshow("Converted_Image", myImage_Converted);
waitKey(0);
destroyAllWindows();
return 0;
}
आउटपुट
