StupidBeauty
Read times:1155Posted at:Mon Jun 10 21:59:06 2013
- no title specified

GIMP源代码中学到的彩色图片阈值化处理方法

本座正在进行开发的一个高科技项目中,重度地使用了 opencv做机器视觉的处理。其中有一个步骤是要把一张图片做阈值化处理。

opencv里已经有阈值处理的函数threshold,但是该函数只支持 8位图片,也就是实际上对彩色图片是不支持的。要想对彩色图片使用这个函数,首先要将彩色图片转换成灰度图片,在这个转换过程中就丢失了一些颜色信息。这样的结果就是,最终得到的阈值化图片不太理想。

而本座在研究算法时,使用 GIMP做了试验。发现 GIMP的阈值化处理,对于彩色图片的处理效果比opencv的好多了。

下面有几张图片做对比。

上面这是原图

上面这是使用 opencv的阈值化函数处理的结果,图中 164表示的是这次阈值处理所采用的阈值参数,是使用OTSU算法计算出来的

上面这是使用 GIMP,按照同样的阈值参数做阈值化处理的结果

opencv中进行32位色到8位色转换时,丢失了一些颜色细节,导致最终的阈值化处理结果中,右上角出现大块黑影。 GIMP不进行这种转换,直接拿32位的原图来做阈值化处理,所以对于示例中这种特征的图片,效果好狠多。

于是本座决定研究一下 GIMP的源代码。

研究之后,发现GIMP中的阈值化处理源代码是狠简单的。对于每个像素,分别取出其红绿蓝三个分量,将三个分量中的最大值与设定的阈值做比较,超过阈值,则此像素的颜色改写成全 255(最大值,也就是白色),未超过阈值,则此像素的颜色改写成全0(最小值,也就是黑色)。

于是就把 GIMP这段代码借鉴过来,果然在本座自己的高科技系统中阈值处理这一步的效果更理想了。

金正日的妞

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4