用bufferedImage 怎样读取灰度图像的像素值 啊,用getRGB 读取的像素值有偏差 5
1个回答
展开全部
unsigned char * ip;///用于存放图像数据开辟的动态内存
char filename1[50];
DWORD m_dwLength;//256*256//176*144//fushan1
strcpy(filename1,"laser2.raw");////laser2.raw为读入图像的名字其格式为.raw
CFile filesource(filename1,CFile::modeRead);
m_dwLength = filesource.GetLength();
ip=new unsigned char[m_dwLength];
filesource.Read(ip,m_dwLength);
//===================================
int i,j;
int lx,ly;
lx=640;//176;//256;图像的宽度
ly=480;//144;//256;图像的高度
////显示该图像////////////////
CClientDC dc(this);
//--------------------
for(i=0;i<ly;i++)
{
for(j=0;j<lx;j++)
{
dc.SetPixel(10+j,0+i,RGB(ip[i*lx+j],ip[i*lx+j],ip[i*lx+j]));//mono
}
}
///////////////////////////////////
////////////将图像的灰度值存成.xls文件
FILE * XltFile;
XltFile=fopen("test.xls","wb");
for(i=0;i<ly;i++)
{
for(j=0;j<lx;j++)
{
fprintf(XltFile,"%d\t",ip[j+i*lx]);
}
fprintf(XltFile,"\n");
}
fclose(XltFile);
////////////////////////
delete ip;
char filename1[50];
DWORD m_dwLength;//256*256//176*144//fushan1
strcpy(filename1,"laser2.raw");////laser2.raw为读入图像的名字其格式为.raw
CFile filesource(filename1,CFile::modeRead);
m_dwLength = filesource.GetLength();
ip=new unsigned char[m_dwLength];
filesource.Read(ip,m_dwLength);
//===================================
int i,j;
int lx,ly;
lx=640;//176;//256;图像的宽度
ly=480;//144;//256;图像的高度
////显示该图像////////////////
CClientDC dc(this);
//--------------------
for(i=0;i<ly;i++)
{
for(j=0;j<lx;j++)
{
dc.SetPixel(10+j,0+i,RGB(ip[i*lx+j],ip[i*lx+j],ip[i*lx+j]));//mono
}
}
///////////////////////////////////
////////////将图像的灰度值存成.xls文件
FILE * XltFile;
XltFile=fopen("test.xls","wb");
for(i=0;i<ly;i++)
{
for(j=0;j<lx;j++)
{
fprintf(XltFile,"%d\t",ip[j+i*lx]);
}
fprintf(XltFile,"\n");
}
fclose(XltFile);
////////////////////////
delete ip;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询