有没有办法显示一个灰度级别大于256的图。
1,有个raw数据,它里面存储着灰度级别大于1024个的像素数据,我想了想除了自己转换成256级灰度外没办法显示出来,不知道有没有其他意见?
2,这个raw数据是16位的,但是灰度级别只用到了10位,于是我用下面的办法转成256灰度后,显示的总是不好看,好像每个象素间都有个黑色像素,有的地方也有杂色的感觉,还不如本来就是个8位的raw数据。是我转换方法有误么?
for (int i = 0, nHeight = m_nRawdataHeight, nWidth = 0; i<m_nRawdataHeight*m_nRawdataWidth*2; )
{
UINT uTe1 = (m_nRawdataBuffer[i++])<<8;
UINT uTe2 = m_nRawdataBuffer[i++];
UINT nColor = uTe1 + uTe2;
//nColor是从raw数据中取到的一个像素点,16位
int colorTemp = nColor*256/1023;
if(nWidth<=m_nRawdataWidth && nHeight<=m_nRawdataHeight)
{
//SetPixelColor是把这个点转化成一个rgb颜色存到位图里,准备用来显示
image.SetPixelColor(nWidth++, nHeight, RGB(colorTemp,colorTemp,colorTemp));
}
if (nWidth == m_nRawdataWidth)
{
nWidth = 0;
nHeight--;
}
}