小白学习视觉,笔记
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对应部分。
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