a.Width * 3; }} // 解除被处理图像数据的锁存,图像处理结束 crtBitmap.UnlockBits(bmpData); 二、软件设计工作分配所有工作都是由本人独自完成,做的不好的地方请李老师体谅! 三、软件设计详细过程 1 、图像灰度化灰度化原理: 为了加快图像处理速度, 在图像处理特别是模式识别中通常先要将彩色图像转换为灰度图像。对于 24 位的彩色图像,其每个像素用 3 个字节来表示颜色,每个字节分别对应 R (红)、 G (绿)、 B (蓝) 3 个分量。当 R、G、B 不同时表现为彩色图像; R、G、B 相同时表现为灰度图像。常用的彩色转换为灰度的公式如下: 图像灰度化处理程序流程图图像灰度化处理效果展示: ),( 114 .0),(587 .0),(299 .0),(jiBjiGjiRji Gray ??????开始结束锁存图像像素数据图像已加载? 否是错误提示指针移向字节首地址指针遍历图像结束? 否是计算并修改当前像素颜色移动指针至下一像素解锁图像像素数据重绘窗体在指定位置以指定尺寸绘图 2 、灰度直方图直方图原理: 任何一幅图像的直方图都包括了客观的信息, 某些类型的图像还可以由其直方图完全描述。简单地说, 灰度级的直方图就是反映一幅图像中灰度级与其出现概率之间的关系图形。通常以横坐标表示灰度级, 以纵坐标表示出现次数( 或相对于次数的频率), 则直方图的分布函数可表示如下: 灰度直方图生成程序流程图图像灰度直方图效果展示: )1,,2,1,0()(2 ??? bk kkHnr ?开始结束锁存图像像素数据图像已加载? 否是错误提示指针移向字节首地址指针遍历图像结束? 否是读取灰度级 r k移动指针至下一像素根据 n k绘制直方图 1.绘制坐标系 2.标注最大像素统计值灰度级记录参数初始化当前灰度级 n k ++ 释放绘图对象解锁图像像素数据