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文件,便可以得到像素值: