OpenCV实现任意图像像素矩阵获取
admin 于 2014年04月24日 发表在 计算机视觉
1. Debian下opencv的编译安装,参考文章:《Ubuntu12.04中编译安装OpenCV2.4.5》
程序(点击下载附件)
int main(int argc, char *argv[])
{
FILE *fp;
IplImage* img = 0;
int height,width,step,channels;
uchar *data;
int i,j;
if(argcheight;
width = img->width;
step = img->widthStep;
channels = img->nChannels;
data = (uchar *)img->imageData;
printf("Processing a %dx%d image with %d channels\n",height,width,channels);
fp=fopen("cal.txt","w");
// invert the image
// 相当于 cvNot(img);
for(i=0;i<height;i++)
{
fprintf(fp,"\n第%d行Data:",i+1);
for(j=0;j<width;j++)
{
fprintf(fp,"%d ",data[i*step+j]);
}
}
return 0;
}2. 获取文件信息:
3. 创建储存文件cal.txt,利用行列扫描的方式,实现数据的输出:
4. 实验图像:
5. 命令编译,以及程序输出控制:
6. 通过查看文件中生成的cal.txt文件,便可以得到像素值:

