我从摄像头那里得到了16位RGB图。
一种颜色用两个字节 e 和 f 颜色是按照 5-6-5 RRRRRGGG GGGBBBBB 排的
QRgb value;
b=e&0x1f;
g=(e>>5)|((f<<3)&0x38);
r=f>>3;
value = qRgb(r,g ,b);
image.setPixel(0, 0, value);
这个value是颜色的值。但出现了不正确的颜色。不知道为什么。。。。。。。。。
如果我把改成
QRgb value;
b=(e&0x1f)*8; //565
g=((e>>5)|((f<<3)&0x38))*4;
r=(f>>3)*8;
value = qRgb(r,g ,b);
image.setPixel(0, 0, value);
这样颜色就会好很多,但也不是很好。这个是网上听说的,这方法是从16位转24位,
但会失真。
是不是qRGB()就是能合成24位,不能合成16位的颜色呢
有没有办法呢
求建议。。。。。。。。。。。