从指定路径批量读取图像并比对得出特定pixel的坐标

#include<iostream>
#include<fstream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
	ofstream file;
	file.open("shuju.txt");
	bool flag1 = true;
	bool flag2 = true;
	int step = 30;
	int currFrame = 0;
	int b, g, r;
	int b1, g1, r1;
	Mat src;
	Mat mark;
	while (flag1)
	{
		stringstream str;
		int row = 0;
		int col = 0;
		currFrame = currFrame + step;
		str << currFrame << ".jpg";
		src = imread("D:\\src\\" + str.str());
		mark = imread("D:\\mark\\" + str.str());
		/*if (currFrame == 60)
		{
			imshow("src", src);
			imshow("mark", mark);
			waitKey(0);
		}
		*/
		for (; row < src.rows; row++)
		{
			for (; col < src.cols; col++)
			{
				b = src.at<Vec3b>(row, col)[0];
				g = src.at<Vec3b>(row, col)[1];
				r = src.at<Vec3b>(row, col)[2];
				b1 = mark.at<Vec3b>(row, col)[0];
				g1 = mark.at<Vec3b>(row, col)[1];
				r1 = mark.at<Vec3b>(row, col)[2];
				if ((b == b1) && (g == g1) && (r == r1))
				{
					continue;
				}
				else
				{
					file << b << "," << g << "," << r << endl;
					file << b1 << "," << g1 << "," << r1 << endl;
					flag2 = false;
					break;
				}
			}
			if (flag2 == false)
			{
				break;
			}
		}
		cout << row << "," << col << endl;
		system("pause");
		if (currFrame == 60)
		{
			flag1 = false;
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值