default:
int nIndex = *(BYTE*)(m_lpImage+GetPixelOffset(x, y));
cColor.rgbRed = m_lpImage[nIndex];
cColor.rgbGreen = m_lpImage[nIndex + 1];
cColor.rgbBlue = m_lpImage[nIndex + 2];
cColor.rgbReserved =0;
break;
以上是RGBQUAD CDib::GetPixel(int x, int y)的代码 1 4 8 16 位都能显示 就是24位显示rgb全是255
c++mfc获取像素值24位位图全是255
答案:2 悬赏:20
解决时间 2021-11-28 10:14
- 提问者网友:巴黎塔下许过得承诺
- 2021-11-27 22:55
最佳答案
- 二级知识专家网友:都不是誰的誰
- 2021-11-27 23:19
RGB最大值是255,16的平方为256 也就是说255 最多能够表示到16位的,DIB图像只能够表示16位模式下,但是可以在更高位模式下显示。
全部回答
- 1楼网友:何以畏孤独
- 2021-11-27 23:47
你要先看bitmap的文件格式,学会提取rgb分量,转换到hsv,再进行提取。
你用opencv不行吗?都有现成的函数,或者你可以参照opencv源代码,自己改一下。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯