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