在MFC用opencv读取bmp格式的图片的像素数据,代码和结果见问题补充,结果和想象中的不一样啊,求解,非常
代码如下:IplImage*img=cvLoadImage("4.bmp");cvNamedWindow("1");cvShowImage("1",img);inti=0...
代码如下:
IplImage *img=cvLoadImage("4.bmp"); cvNamedWindow("1"); cvShowImage("1",img);
int i=0,j=0;
char a[10]=""; int pixel=0;
CString temp=""; CStdioFile file;
file.Open("1.txt",CFile::modeCreate|CFile::modeReadWrite);
itoa(img->width,a,10);
temp="img->width="+CString(a)+" ";
AfxMessageBox(temp);
itoa(img->height,a,10);
temp="img->height="+CString(a)+" \n";
AfxMessageBox(temp);
for(i = 0; i < img->height; i++) // 每行
{ temp="";
for(j = 0; j <img->width; j++) // 每列
{pixel=((uchar*)(img->imageData + img->widthStep*i))[j];
itoa(pixel,a,10);
temp+=CString(a)+" ";}
temp+="\n";
file.WriteString(temp);
file.Flush();}
cvWaitKey(0);
cvDestroyWindow("1");
}
运行结果在1.txt中:
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0
0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0
0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0
255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
。。。后面还有几行255,贴不下了 展开
IplImage *img=cvLoadImage("4.bmp"); cvNamedWindow("1"); cvShowImage("1",img);
int i=0,j=0;
char a[10]=""; int pixel=0;
CString temp=""; CStdioFile file;
file.Open("1.txt",CFile::modeCreate|CFile::modeReadWrite);
itoa(img->width,a,10);
temp="img->width="+CString(a)+" ";
AfxMessageBox(temp);
itoa(img->height,a,10);
temp="img->height="+CString(a)+" \n";
AfxMessageBox(temp);
for(i = 0; i < img->height; i++) // 每行
{ temp="";
for(j = 0; j <img->width; j++) // 每列
{pixel=((uchar*)(img->imageData + img->widthStep*i))[j];
itoa(pixel,a,10);
temp+=CString(a)+" ";}
temp+="\n";
file.WriteString(temp);
file.Flush();}
cvWaitKey(0);
cvDestroyWindow("1");
}
运行结果在1.txt中:
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0
0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0
0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0
255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
。。。后面还有几行255,贴不下了 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询