1、使用颜色转换工具将彩色图像通道分离(仅限于本案例),提取RGB中的B通道。
2、对转换得到的B通道的灰度图像使用直线查找工具,定位结果成功。
有很多种的,不知道你要的是哪一种,一般在的Canval中可以用Pixels(X,Y)函数来获取某点的TColor,然后转换成RGB即可。
当然还有更高效的ScanLine等方法,这个就不是一句两句能说清楚的了,还要考虑的格式等等问题,如果需要可搜索一下这方面的应用方法。
很简单啊!
打开图像的话,首先获取bmp的像素矩阵,然后用bitblit复制到内存dc上,再复制到窗口dc上,即可。
鼠标的问题,在onclick事件中处理,算一下鼠标点击位置的坐标,然后相对于bmp在窗口中的位置,计算出点击位置在bmp像素矩阵中的坐标,然后从bmp像素矩阵获取对应的各个像素rgb值,计算平均数,然后调用对话框函数显示即可。
COLORREF clr = ::GetPixel(hDC, pointx, pointy); //获取当前鼠标点像素值
m_red = GetRValue(clr);
m_bluee = GetBValue(clr);
m_green = GetBValue(clr);
pData里面保存的就是一个一个的COLORREF结构,你只需要通过BITMAPINFOHEADER中的宽高等信息,计算位移,就可以读取某个点的RGB值了。
还有一个简单的办法,你之前已经有memBitmap这个CBitmap了,通过这个做更方便。通过SelectObject将memBitmap放到一个CDC中,直接使用函数GetPixel函数就可以获取指定某个点的RGB值了,这个不需要计算和位移。
以上就是关于海康相机获取rgb各通道图像全部的内容,包括:海康相机获取rgb各通道图像、delphi 如何获取图片RGB、用MFC编程打开24位真彩BMP图像,然后获取鼠标点的RGB值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)