OpenCV 读取像素值的常用方法

ε祈祈猫儿з 提交于 2020-02-05 16:54:26

OpenCV常用读取像素方法及读取速度对比

法一 指针法(效率最高)

void main()
{
	//灰度图
	Mat src = imread("src.jpg", 0);
	//图像行、列
	int row = src.rows, col = src.cols;
	for (int i = 0; i < row; i++)
	{
		//读取整行数据
		uchar* ptr = src.ptr<uchar>(i);
		for (int j = 0; j < col; j++)
		{
			int pixel = (int)ptr[j];
			cout << pixel << "    ";
		}
		cout << endl;
	}
}

法二

void main()
{
	//灰度图
	Mat src = imread("src.jpg", 0);
	//图像行、列
	int row = src.rows, col = src.cols;
	for (int i = 0; i < row; i++)
	{
		for (int j = 0; j < col; j++)
		{
			int pixel = (int)src.ptr<uchar>(i, j);
			cout << pixel << "    ";
		}
		cout << endl;
	}
}

法三

void main()
{
	//灰度图
	Mat src = imread("src.jpg", 0);
	//图像行、列
	int row = src.rows, col = src.cols;
	for (int i = 0; i < row; i++)
	{
		for (int j = 0; j < col; j++)
		{
			int pixel = (int)src.at<uchar>(i,j);
			cout << pixel << "    ";
		}
		cout << endl;
	}
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!