我们尝试用矩阵表示一个图像,在一段程序中,出现了有趣的现象:
// imgproc.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include "iostream"
#include "opencv2\opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
using namespace cv;
int main(int argc, int ** argv[])
{
//
Mat img1=imread("yu.jpg"); //9*8
namedWindow("demo");
imshow("demo",img1);
int i,j;
cout<<"ptr方法"<<endl;
cout<<"-----------------------------------------------"<<endl;
for(j=0;j<img1.rows;j++)
{
uchar * data=img1.ptr<uchar>(j);//得到行指针(储存行数据的地址)
for (i=0;i<img1.cols*img1.channels();i++)//行数据的长度为 列数*通道数
{
//仿照方式格式打印出来
cout<<(int)data[i];b通道
i++;
cout<<(int)data[i];//g通道
i++;
cout<<(int)data[i];//r通道
cout<<"\t";
}
cout<<endl;
}
cout<<"-----------------------------------------------"<<endl;
waitKey(0);
return 0;
}
结果是:
以及最终出现的结果是: