Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จะแปลงช่องว่างสีใน OpenCV โดยใช้ C ++ ได้อย่างไร


พื้นที่สีเป็นแบบจำลองของการแสดงสี มีหลายวิธีในการอธิบายสี เช่น 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;
}

ผลลัพธ์

จะแปลงช่องว่างสีใน OpenCV โดยใช้ C ++ ได้อย่างไร