GDAL读取并显示16bit图像应该怎么做

lggrief 2013-09-06 03:37:47
BYTE *m_poBandBlockR;
BYTE *m_poBandBlockG;
BYTE *m_poBandBlockB;

//一次性读取
m_poBandBlockR = (BYTE *)CPLMalloc(sizeof(BYTE)*width*height);
m_poBandBlockG = (BYTE *)CPLMalloc(sizeof(BYTE)*width*height);
m_poBandBlockB = (BYTE *)CPLMalloc(sizeof(BYTE)*width*height);

poBand[0]->RasterIO(GF_Read,0,0,width,height,m_poBandBlockB,width,height,pDataType,0,0);
poBand[1]->RasterIO(GF_Read,0,0,width,height,m_poBandBlockG,width,height,pDataType,0,0);
poBand[2]->RasterIO(GF_Read,0,0,width,height,m_poBandBlockR,width,height,pDataType,0,0);
m_p8Data = (LPBYTE)new char[LineBytes*height*3];


for ( i=0; i<height; i++)
{
for ( j=0; j<width; j++)
{
m_p8Data[(height-i-1)*LineBytes + 3*j] = m_poBandBlockR[i*width + j];
m_p8Data[(height-i-1)*LineBytes + 3*j+1] = m_poBandBlockG[i*width + j];
m_p8Data[(height-i-1)*LineBytes + 3*j+2] = m_poBandBlockB[i*width + j];
}
}
上面是读取24位图(pDataType=GDT_Byte)时的操作,那么读取16位图(pDataType=GDT_UInt16)应该怎么读,数据应该做些什么样的处理才能显示出图像,跪求高手解答
...全文
753 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lggrief 2015-11-09
  • 打赏
  • 举报
回复
线性拉伸会有这样的效果,你就得对这个最大最小值进行优化了再拉伸,就可以得到比较明亮的图了
xingfeng_zuolang 2015-08-18
  • 打赏
  • 举报
回复
按照线性拉伸处理的24bit影像,效果偏黄、偏暗,你那里有这个问题吗?
lggrief 2013-09-18
  • 打赏
  • 举报
回复
问题已解决,使用最大最小差值线性拉伸就可以达到效果了
lggrief 2013-09-09
  • 打赏
  • 举报
回复
这个只是普通的24bit图片的显示,没有16bit的,24bit的图片我也会啊,有没有哪位大神给点意见啊

4,447

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧