opencv_c++学习(八)

一、两张图像的像素比较

比较最大最小

最小:

min(lnputArray src1, InputArray src2, outputArray dst)

最大:

max(lnputArray src1, InputArray src2, outputArray dst)

src1 :第一个图像矩阵,可以是任意通道数的矩阵。
src2:第二个图像矩阵,尺寸和通道数以及数据类型都需要与src1一致。
dst:保留对应位置较大(较小)灰度值后的图像矩阵,尺寸、通道数和数据类型与src1一致。

minMaxLoc(lnputArray src,double* minVal, double* maxval=0, Point *minLoc=0, Point *maxLoc=0, lnputArray mask = noArray())

src:输入单通道矩阵
minVal:指向最小值的指针,如果不需要,则使用NULL。
maxVal:指向最大值的指针,如果不需要,则使用NULL。
minLoc:指向最小值位置的指针,如果不需要,则使用NULL。
maxLoc:指向最大值位置的指针,如果不需要,则使用NULL。
mask:掩码矩阵,用于标记寻找上述四个值的范围,参数默认值noArray(),表示寻找范围是矩阵中所有数据。

以上函数的使用实例如下:

	//读入两张图片
	Mat src1 = imread("图片1.png");
	Mat src2 = imread("图片2.png");

	Mat Min, Max;

	//比较两张图片中的最小、大值
	min(src1, src2, Min);
	max(src1, src2, Max); 

	//将图像转化为灰度图像
	Mat gray;
	cvtColor(src1, gray, COLOR_BGR2GRAY);

	//定义要使用的变量
	double minVal, maxVal;
	Point MinLoc, MaxLoc;

	minMaxLoc(gray, &minVal, &maxVal, &MinLoc, &MaxLoc);

二、图像像素逻辑运算

在这里插入图片描述
如果图像的数据类型为二值类型,则直接进行逻辑运算,如果图像为0-255数据类型,则先将数据转换为8为2进制数据类型之后再逻辑运算。
非运算只针对单幅图像进行操作:

bitwise2not(lnputArray src,outputArray dst, lnputArray mask = naArray())

与运算:

bitwise_and(InputArray src1, lnputArray src2,outputArray dst, lnputArray mask = noArray())

或运算:

bitwise_or(InputArray src1, lnputArray src2,outputArray dst, lnputArray mask = noArray())

异或运算:

bitwise_xor(InputArray src1, lnputArray src2,outputArray dst, lnputArray mask = noArray())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值