[VS+Opencv]实现输出图像的像素值

1 输出图像的像素值的函数Picture_info如下:

void Picture_info(Mat image)
{
	int number = 0;
	const int channels = image.channels();
	switch (channels)
	{
	case 1:
	{
		MatIterator_<uchar> it, end;
		for (it = image.begin<uchar>(), end = image.end<uchar>(); it != end; ++it) {
			cout << float(*it) << " ";
			number++;
			if (0 == number % (image.cols)) {
				cout << endl;
			}
		}
		cout << "***********************************" << endl;
		break;
	}


	case 3:
	{
		MatIterator_<Vec3b> it, end;
		for (it = image.begin<Vec3b>(), end = image.end<Vec3b>(); it != end; ++it) {
			cout << float((*it)[0]) << " " << float((*it)[1]) << " " << float((*it)[2]) << " ";
			number++;
			if (0 == number % (image.cols)) {
				cout << endl;
			}
		}
		cout << "***********************************" << endl;
	}
	}
}

2 主函数如下:

首先将读取的图片转换为灰度图片。

然后,为了方便看结果,将图片Resize为5X5大小。

​​​​​​​int main()
{
    auto img = cv::imread(R"(E:\test.jpg)");
    cv::cvtColor(img, img, CV_BGR2GRAY);
    cv::resize(img, img, cv::Size(5, 5));
    Picture_info(img);
    return 0;
}

输出结果如下:

166 203 178 116 64
146 134 170 194 55
216 92 158 59 70
135 92 173 71 62
39 52 158 39 49
***********************************
请按任意键继续. . .

猜你喜欢

转载自blog.csdn.net/wss794/article/details/81131644