ภาพไบนารีเป็นเพียงภาพดิจิทัลที่แสดงสองสีคือขาวดำ จากมุมมองของการประมวลผลภาพ ภาพไบนารีประกอบด้วยพิกเซลที่มีค่าที่เป็นไปได้สองค่า - ศูนย์และหนึ่ง เมื่อค่าของพิกเซลเป็น 0 แสดงว่าเป็นสีดำล้วน เมื่อค่าของพิกเซลเท่ากับ 1 แสดงว่าเป็นสีขาวบริสุทธิ์
ในภาพระดับสีเทา มีค่าที่เป็นไปได้ที่แตกต่างกัน 256 ค่าสำหรับแต่ละรายการ แต่ใน Binary Image มีค่าที่เป็นไปได้เพียงสองค่าเท่านั้น ภาพไบนารีมีแอปพลิเคชันประเภทต่างๆ ตัวอย่างเช่น การแปลงทางสัณฐานวิทยาต้องใช้รูปภาพไบนารี การดึงรูปร่างวัตถุจากพื้นหลังต้องใช้รูปภาพไบนารี เป็นต้น การใช้ OpenCV ทำให้เราแปลงรูปภาพเป็นรูปภาพไบนารีได้อย่างอิสระ
ตัวอย่างต่อไปนี้กำลังแปลงภาพที่โหลดในเมทริกซ์ 'original_image' เป็นภาพระดับสีเทาและจัดเก็บไว้ในเมทริกซ์ 'grayscale_image'-
cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);
บรรทัดถัดไปคือการแปลงรูปภาพระดับสีเทาเป็นรูปภาพไบนารีและจัดเก็บรูปภาพที่แปลงแล้วเป็นเมทริกซ์ 'binary_image'
threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);
ที่นี่ 'grayscale_image' คือเมทริกซ์ต้นทาง 'binary_image' คือเมทริกซ์ปลายทาง หลังจากนั้น มีค่าสองค่า 100 และ 255 ค่าทั้งสองนี้แสดงถึงช่วงเกณฑ์ ในบรรทัดนี้ ช่วงขีดจำกัดแสดงถึงค่าพิกเซลระดับสีเทาที่จะแปลง
โปรแกรมต่อไปนี้โหลดภาพและแปลงเป็นภาพไบนารี
ตัวอย่าง
#include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace cv; using namespace std; int main(int argc, char** argv) { Mat original_image;//declaring a matrix to load the original image// Mat grayscale_image;//declaring a matrix to store grayscale image// Mat binary_image;//declaring a matrix to store the binary image namedWindow("Original Image");//declaring window to show binary image// namedWindow("Show Binary");//declaring window to show original image// original_image = imread("teddy.jpg");//loading image into matrix// cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);//Converting BGR to Grayscale image and storing it into converted matrix// threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);//converting grayscale image stored in converted matrix into binary image// imshow("Original Image", original_image);//showing Original Image// imshow("Show Binary", binary_image);//showing Binary Image// waitKey(0); return 0; }
ผลลัพธ์