พื้นที่สีเป็นแบบจำลองของการแสดงสี มีหลายวิธีในการอธิบายสี เช่น RGB, CYMK, HSV, โทนสีเทา เป็นต้น
ที่นี่ เราใช้ส่วนหัวใหม่ชื่อ 'imgproc.hpp' 'imgproc.hpp' . นี้ เป็นตัวย่อของการประมวลผลภาพ ในการแปลงปริภูมิสี เราจำเป็นต้องใช้ 'cvtColor()' การทำงานของ OpenCV ฟังก์ชันนี้กำหนดไว้ใน 'imgproc' ไฟล์ส่วนหัว เราจึงรวม 'imgproc.hpp' ไว้ด้วย
ประการแรก เราประกาศสองเมทริกซ์และสองหน้าต่าง เหล่านี้มีไว้สำหรับโหลดและแสดงภาพ จากนั้นเราก็โหลดรูปภาพของเราชื่อ 'cat.jpg' ลงใน 'myImage' เมทริกซ์ หลังจากนั้น เราใช้ 'cvtColor(myImage, myImage_Converted, COLOR_RGB2GRAY)' บรรทัดนี้แปลงปริภูมิสี RGB ของ 'myImage' เป็นโทนสีเทา และจัดเก็บไว้ในเมทริกซ์ 'myImage_Converted'
รูปแบบดิบของ 'cvtColor() ฟังก์ชันคือ −
cvtColor(Source Matrix, Destination Matrix, Color Space Conversion Code)
ในโปรแกรมนี้ เมทริกซ์ต้นทางคือ 'myImage' เมทริกซ์ปลายทางคือ 'myImage_Converted' และรหัสการแปลงพื้นที่สีคือ COLOR_RGB2GRAY
โปรแกรมต่อไปนี้แปลงภาพ RGB เป็นภาพระดับสีเทาใน OpenCV
ตัวอย่าง
#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;//declaring a matrix to load the image// Mat myImage_Converted;//declaring a matrix to store the converted image// namedWindow("Actual_Image");//declaring window to show actual image// namedWindow("Converted_Image");//declaring window to show converted image// myImage = imread("cat.jpg");//loading the image in myImage matrix// cvtColor(myImage,myImage_Converted, COLOR_RGB2GRAY);//converting RGB to Grayscale// imshow("Actual_Image",myImage);//showing Actual Image// imshow("Converted_Image",myImage_Converted);//showing Converted Image// waitKey(0);//wait for key stroke destroyAllWindows();//closing all windows return 0; }
ผลลัพธ์