站点图标 AI技术聚合

opencv 图像像素比较

opencv 图像像素比较

小白学习视觉,笔记

1 两图像比较,取大,取小

lena图像white、black图像比较,取大,取小。
在比较之前调整图像大小以匹配。

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

using namespace cv;
using namespace std;

int main()
{
	Mat img = imread("C:/opencv/learnOpenCV/lena.png");
	Mat white = imread("C:/opencv/learnOpenCV/mark_white.png");
	Mat black = imread("C:/opencv/learnOpenCV/mark_black.png");

	Mat Min, Max;
	min(img, white, Min);
	max(img, black, Max);
	
	return 0;
}

lena图像white、black图像比较,比较之前图像大小已调整一致。

lena图像white(黑底白字)图像,取小

white图像背景,黑底是0,没有比他更小的数字了,所以比较结果背景还是黑的。
white图像文字,白色是255,没有比他更大的数字了,所以文字部分比较结果取lena对应部分。
lean图像black(白底黑字)图像,取大

black图像背景,白色是255,没有比他更大的数字了,所以比较结果背景还是白色。
black图像文字,黑底是0,最小,所以文字部分比较结果取lena对应部分。

2 最大值、最小值

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

using namespace cv;
using namespace std;

int main()
{
	Mat img = imread("E:/Progarm/Images/素材/lena.png");
	Mat white = imread("E:/Progarm/Images/素材/mark_white.png");
	Mat black = imread("E:/Progarm/Images/素材/mark_black.png");

	Mat gray, gray_white;//灰度图,掩码图
	cvtColor(img, gray, COLOR_BGR2GRAY);//只能单通道比较,所以lena先转换成灰度图
	cvtColor(white, gray_white, COLOR_BGR2GRAY);

	double minVal, maxVal;
	Point minLoc, maxLoc;

	minMaxLoc(gray, &minVal, &maxVal, &minLoc, &maxLoc, gray_white);

	cout << "minVal=" << minVal << "   " << "minLoc" << minLoc << endl;
	cout << "maxVal=" << maxVal << " " << "maxLoc" << maxLoc << endl;

	return 0;
}

版权声明:本文为博主R-G-B原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/m0_51233386/article/details/123028256

退出移动版