用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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
希奕际
2024-04-10 广告
2024-04-10 广告
剑桥文理与剑桥艺术学校中国 基于剑桥文理学校优质的海外校本部资源和课程方向,现开设四类课程:艺术与设计课程、音乐与戏剧课程、英国A-Level课程、波士顿文理中学美高与AP课程。荣获2021胡润百学中国国际学校艺术类领军学校奖,2022胡润...
点击进入详情页
本回答由希奕际提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询