我想弄清楚如何將圖像從uint16轉換爲uint8。我基本上必須讀取浮動圖像,我需要顯示它在無符號字符。QT轉換16位QImage爲8位無符號字符在QT
我有以下幾點:
float two_eight = pow(2.0,8);
float two_sixteen = pow(2.0,16);
QImage *qi = new QImage(imwidth, imheight, QImage::Format_RGB32);
for (int i = 0 ; i < imheight ; i++)
{
for (int j = 0 ; j < imwidth ; j++)
{
floatData[i*imwidth+j] = (two_eight* floatData[i*imwidth+j])/two_sixteen;
qi->setPixel(j,i,qRgb((unsigned char)floatData[i*imwidth+j],(unsigned char)floatData[i*imwidth+j],(unsigned char)floatData[i*imwidth+j]));
}
}
有Qt中執行這個更好的方法?
QImage不支持16位每通道圖像:) – vines 2011-06-10 20:19:45
@vines我知道,這就是爲什麼我首先將16位數據(存儲在'inData'向量中)轉換爲8位數據('outData'向量),之後使用8位數據創建QImage。 – 2011-06-10 20:21:15
啊,對不起,趕緊.. – vines 2011-06-10 20:23:03