level 3
小小叔叔🐼
楼主
#include<iostream>
#include "cv.h"
#include "highgui.h"
using namespace std;
int main()
{
cout<<"进入系统----------->"<<endl;
//1、读入150*130灰度图片,将矩阵拉成一行
IplImage* img = cvLoadImage("f://6.jpg",0);
cout<<"----------------------图片加载成功!--------------------"<<endl;
CvMat* imgMat = cvCreateMat(img->height,img->width,CV_32FC1);//定义一个指向CvMat对象的指针
cvConvert(img,imgMat);
cout<<"图像转换成矩阵成功!"<<endl;
//将矩阵拉成一行
/*CvMat row_header, *row;
row = cvReshape( imgMat, &row_header, 0, 1 );
cout<<"行的像素个数为"<<row->cols<<endl;
cout<<"列的像素个数位"<<row->rows<<endl;*/
cout<<"行的像素个数为"<<imgMat->cols<<endl;
cout<<"列的像素个数为"<<imgMat->rows<<endl;
int text=CV_MAT_ELEM(*imgMat,int,200,100);
cout<<text<<endl;
//显示原图片。
cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("window");
return 0;
}
以上是代码。就是用cvConvert函数把图片转换成矩阵。然后再用CV_MAT_ELEM这个宏
将矩阵的元素提取出来,并且打印。。然后输出结果就奇葩了。。

问题。。为什么矩阵里存的是1131872256.。这货是什么啊!!本以为应该是一个灰度值的说。。难道是我的打开方式不对??求解释。。求正解方法。。
2013年10月22日 10点10分
1
#include "cv.h"
#include "highgui.h"
using namespace std;
int main()
{
cout<<"进入系统----------->"<<endl;
//1、读入150*130灰度图片,将矩阵拉成一行
IplImage* img = cvLoadImage("f://6.jpg",0);
cout<<"----------------------图片加载成功!--------------------"<<endl;
CvMat* imgMat = cvCreateMat(img->height,img->width,CV_32FC1);//定义一个指向CvMat对象的指针
cvConvert(img,imgMat);
cout<<"图像转换成矩阵成功!"<<endl;
//将矩阵拉成一行
/*CvMat row_header, *row;
row = cvReshape( imgMat, &row_header, 0, 1 );
cout<<"行的像素个数为"<<row->cols<<endl;
cout<<"列的像素个数位"<<row->rows<<endl;*/
cout<<"行的像素个数为"<<imgMat->cols<<endl;
cout<<"列的像素个数为"<<imgMat->rows<<endl;
int text=CV_MAT_ELEM(*imgMat,int,200,100);
cout<<text<<endl;
//显示原图片。
cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("window");
return 0;
}
以上是代码。就是用cvConvert函数把图片转换成矩阵。然后再用CV_MAT_ELEM这个宏
将矩阵的元素提取出来,并且打印。。然后输出结果就奇葩了。。

问题。。为什么矩阵里存的是1131872256.。这货是什么啊!!本以为应该是一个灰度值的说。。难道是我的打开方式不对??求解释。。求正解方法。。