【OpenCV3】cv::compare()使用詳解

cv::compare()主要用於兩個圖像之間進行逐像素的比較,並輸出比較的結果。具體用法如下:

cv::compare()
	bool cv::compare(
	cv::InputArray src1, // 輸入數組1
	cv::InputArray src2, // 輸入數組2
	cv::OutputArray dst, // 輸出數組
	int cmpop // 比較操作子,見下表 
);

其中支持的比較操作有以下幾種:

下面直接通過一段代碼來看這個函數具體有什麼妙用:


#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
	cv::Mat img0 = cv::imread("img0.jpg", -1);
	cv::Mat img1 = cv::imread("img1.jpg", -1);

	if (img0.empty())
	{
		std::cout << "load img0 failed!\n" << std::endl;
		return -1;
	}

	if (img1.empty())
	{
		std::cout << "load img1 failed!\n" << std::endl;
		return -1;
	}

	cv::Mat img2;
	cv::compare(img0, img1, img2, cv::CMP_GT);

	cv::imshow("img0", img0);
	cv::imshow("img1", img1);
	cv::imshow("img2", img2);

	cv::waitKey(0);
	return 0; 
}

結果如下:

輸入1:

輸入2:

輸出: 

由此可見,cv::compare可以用於靜止背景下移動物體的檢測等應用。

2018.08.12

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章