第四章灰度图像处理 彩色图像转灰度图像 直方图 灰度变换 图像平滑 图像锐化 图像分割 图像匹配 彩色图像转灰度图像 1、分量法 2、最大值法 3、平均值法 4、加权平均法 彩色图像转灰度图像 GetPixel 函数功能:该函数检索指定坐标点的像素的 RGB 颜色值。函数原型:COLORREF GetPixel(HDC hdc, int nXPos, int nYPos) 参数: hdc :设备环境句柄。 nXPos :指定要检查的像素点的逻辑 X轴坐标。 nYPos :指定要检查的像素点的逻辑 Y轴坐标。返回值:返回值是该象像点的 RGB 值。声明方法: Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long) As Long 彩色图像转灰度图像 SetPixel 函数功能:该函数将指定坐标处的像素设为指定的颜色。函数原型:COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor) ; 参数:hdc :设备环境句柄。 X:指定要设置的点的 X轴坐标,按逻辑单位表示坐标。 Y:指定要设置的点的 Y轴坐标,按逻辑单位表示坐标。 crColor :指定要用来绘制该点的颜色。 返回值:如果函数执行成功,那么返回值就是函数设置像素的 RGB 颜色值。这个值可能与 crColor 指定的颜色有所不同,之所以有时发生这种情况是因为没有找到对指定颜色进行真正匹配造成的;如果函数失败,那么返回值是-1。声明方法: Private Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long, ByVal crColor As Long) As Long 彩色图像转灰度图像 1、分量法( R分量法) Private mand2_Click() = w = h = For i = 0 To w-1 For j = 0 To h-1 rgb = GetPixel(, i, j) Red = rgb mod 256 ' 获得红色值 Green = rgb \256 mod 256 ' 获得绿色值 Blue = rgb\65536 ' 获得兰色值'取R分量作为灰度 rgb = RGB(Red,Red,Red) SetPixelV , i, j, rgb Next j Next i = End Sub 彩色图像转灰度图像 2、最大值法 Private mand3_Click() w = h = For i = 0 To w - 1 For j = 0 To h - 1 rgb1 = GetPixel(, i, j) Red = rgb1 Mod 256 ' 获得红色值 Green = rgb1 \ 256 Mod 256 ' 获得绿色值 Blue = rgb1 \ 65536 ' 获得兰色值'取R、G、B分量最大值作为灰度 If Red > Green And Red > Blue Then Col = Red If Green > Red And Green > Blue Then Col = Green If Blue > Red And Blue > Green Then Col = Blue rgb1 = RGB(Col, Col, Col) SetPixelV , i, j, rgb1 Next j Ne
第4章灰度图像处理 来自淘豆网m.daumloan.com转载请标明出处.