如何使用 C++ 來反轉 OpenCV 中的二進位制影像?
反轉二進位制影像意味著反轉畫素值。從視覺角度來看,當我們反轉一張二進位制影像時,白色畫素會轉換為黑色,黑色畫素會轉換為白色。
此函式的基本形式為 -
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;
}輸出

廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP