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

จะกลับภาพไบนารีใน OpenCV โดยใช้ C ++ ได้อย่างไร


การกลับภาพไบนารีหมายถึงการกลับค่าพิกเซล จากมุมมองของภาพ เมื่อเรากลับภาพไบนารี พิกเซลสีขาวจะถูกแปลงเป็นสีดำ และพิกเซลสีดำจะถูกแปลงเป็นสีขาว

รูปแบบพื้นฐานของฟังก์ชันนี้คือ −

cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);

บรรทัดถัดไปคือการแปลงรูปภาพระดับสีเทาเป็นรูปภาพไบนารีและจัดเก็บรูปภาพที่แปลงแล้วเป็นเมทริกซ์ 'binary_image'

threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);

ที่นี่ 'grayscale_image' คือเมทริกซ์ต้นทาง 'binary_image' คือเมทริกซ์ปลายทาง หลังจากนั้น มีค่าสองค่า 100 และ 255 ค่าทั้งสองนี้แสดงถึงช่วงเกณฑ์ ในบรรทัดนี้ ช่วงขีดจำกัดแสดงถึงค่าพิกเซลระดับสีเทาที่จะแปลง

bitwise_not(source matrix, destination matrix);

ฟังก์ชัน bitwise_not() จะกลับค่าพิกเซลของเมทริกซ์ต้นทางและเก็บไว้ในเมทริกซ์ปลายทาง เมทริกซ์ต้นทางคือ 'binary_image' และเมทริกซ์ปลายทางคือ 'inverted_binary_image'

โปรแกรมต่อไปนี้ทำการผกผันภาพไบนารี -

ตัวอย่าง

#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 converted image//
   Mat binary_image;//declaring a matrix to store the binary image
   Mat inverted_binary_image;//declaring a matrix to store inverted binary image
   namedWindow("Binary Image");//declaring window to show binary image//
   namedWindow("Inverted Binary Image");//declaring window to show inverted binary image//
    original_image = imread("mountain.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//
   bitwise_not(binary_image, inverted_binary_image);//inverting the binary image and storing it in inverted_binary_image matrix//
   imshow("Binary Image", binary_image);//showing binary image//
   imshow("Inverted Binary Image", inverted_binary_image);//showing inverted binary image//
   waitKey(0);
   return 0;
}

ผลลัพธ์

จะกลับภาพไบนารีใน OpenCV โดยใช้ C ++ ได้อย่างไร