ภาพ RGB มีสามช่องสัญญาณ ได้แก่ สีแดง สีเขียว และสีน้ำเงิน พื้นที่สีที่ช่องสีแดง สีเขียว และสีน้ำเงินแทนภาพเรียกว่าปริภูมิสี RGB ใน OpenCV จะใช้ลำดับ BGR แทน RGB ซึ่งหมายความว่าช่องแรกเป็นสีน้ำเงิน ช่องที่สองเป็นสีเขียว และช่องที่สามเป็นสีแดง ในการแบ่งภาพ RGB ออกเป็นแชนเนลต่างๆ เราต้องกำหนดเมทริกซ์ 3 แชนเนล เราใช้ 'Mat different_Channels[3]' เพื่อกำหนดเมทริกซ์สามช่องสัญญาณ
ต่อไป เราแบ่งภาพที่โหลดโดยใช้ฟังก์ชัน 'split()' ของ OpenCV รูปแบบของฟังก์ชันนี้คือ 'split(Source Matrix, Destination Matrix)' ฟังก์ชันนี้แบ่งรูปภาพของเมทริกซ์ต้นทางเป็นแชนเนลของรูปภาพและบันทึกไว้ในเมทริกซ์ปลายทาง บรรทัดนี้กำลังทำงาน – 'split(myImage, different_Channels);'
ฟังก์ชัน split ได้โหลดช่องสัญญาณสีน้ำเงิน สีเขียว และสีแดงลงในเมทริกซ์ 'different_channels' แล้ว โดยใช้บรรทัดต่อไปนี้ เราโหลดภาพที่เก็บไว้ในช่องต่างๆ ลงในเมทริกซ์ใหม่
Mat b =different_Channels[0];//กำลังโหลดช่องสีน้ำเงิน//Mat g =different_Channels[1];//กำลังโหลดช่องสีเขียว//Mat r =different_Channels[2];//กำลังโหลดช่องสีแดง//ก่อน>และสุดท้ายเราแสดงแต่ละช่องต่างกันโดยใช้บรรทัดต่อไปนี้ -
imshow("ช่องสีน้ำเงิน",b);//แสดงช่องสีน้ำเงิน//imshow("ช่องสีเขียว",g);//แสดงช่องสีเขียว//imshow("ช่องสีแดง",r);//กำลังแสดง ช่องแดง//นี่คือวิธีที่เราสามารถแบ่งรูปภาพออกเป็นช่องต่างๆ ได้
โปรแกรมต่อไปนี้แบ่งภาพ RGB เป็นช่องสีน้ำเงิน เขียว และแดง
ตัวอย่าง
#include#include #include ใช้เนมสเปซ cv; ใช้เนมสเปซ std;int main (int argc, const char** argv) { Mat myImage;// ประกาศเมทริกซ์เพื่อโหลดรูปภาพ // Mat different_Channels[3];// ประกาศเมทริกซ์ที่มีสามช่องสัญญาณ // myImage=imread("RGB.png");// กำลังโหลดรูปภาพในเมทริกซ์ myImage // split (myImage, different_Channels);// แยกภาพออกเป็น 3 ช่องสัญญาณ // Mat b =different_Channels[0];// กำลังโหลดช่องสีน้ำเงิน// Mat g =different_Channels[1];// กำลังโหลดช่องสีเขียว// Mat r =different_Channels[2];//กำลังโหลดช่องสีแดง// imshow("ช่องสีน้ำเงิน",b);//แสดงช่องสีน้ำเงิน// imshow("ช่องสีเขียว",g);//แสดงช่องสีเขียว// imshow( "ช่องสีแดง",r);//แสดงช่องสีแดง// imshow("Actual_Image", myImage);//แสดงภาพจริง// waitKey(0);//รอการกดคีย์ destroyAllWindows();//ปิดทั้งหมด windows// return 0;} ผลลัพธ์