求取两幅图像每一个像素较大或者较小灰度值的max()、min()函数,这两个函数分别比较两幅图像每一个元素的灰度值大小,保留较大(较小)的灰度值。
max()、min()函数原型
void cv::max(InputArray src1, InputArray src2, OutputArray dst)
void cv::min(InputArray src1, InputArray src2, OutputArray dst)
其中,src1:第一个图像矩阵,可以是任意通道数的矩阵。src2:第二个图像矩阵,尺寸和通道数及数据类型都需要与src1保持一致。dst:保留对应位置较大(较小)灰度值后的图像矩阵,尺寸、通道数和数据类型与src1保持一致。
例子:
#include <opencv2\opencv.hpp>
#include <iostream>
#include <vector>
using namespace std;
using namespace cv;
int main()
{
float a[12] = { 1, 2, 3.3, 4, 5, 9, 5, 7, 8.2, 9, 10, 2 };
float b[12] = { 1, 2.2, 3, 1, 3, 10, 6, 7, 8, 9.3, 10, 1 };
Mat imga = Mat(3, 4, CV_32FC1, a);
Mat imgb = Mat(3, 4, CV_32FC1, b);
Mat imgas = Mat(2, 3, CV_32FC2, a);
Mat imgbs = Mat(2, 3, CV_32FC2, b);
//对两个单通道矩阵进行比较运算
Mat myMax, myMin;
max(imga, imgb, myMax);
m