[快速阅读十]简易的文字图像周边突兀彩色异常区域去除算法。

  今天朋友给了一些拍照的文字图像,由于噪音以及JPG编码等因素的影响啊,在线条、文字等边缘的部位放大后查看可以看到有明显的彩色的斑点,这个对于后续的识别和处理都是不利的,因此,需要在进一步处理前把他们给去除掉,这里经过测试提出一个简单的算法,经过测试,还是有一定的效果的。

       

                原图放大                              Deinterlace处理后放大

  如上图所示,可以看到,在黑色线条和文字周边存在彩色 的色斑,要想办法尽量把这些彩色色斑去除,并且不影响整体的视觉效果。

  这个嘛,首先得看看我现有的算法是否有比较合适的结果的,找来找去,也就看到有个Deinterlace(去除交错)有点意思,但是观察呢发现,有几个问题,一个是整体变得模糊了一些,第二呢,就是一些不需要改变的区域也改变了。

  这里提出一个改进的思路,就是我们观察,这类图像啊,周边的彩色噪点他的饱和度都比较高,而正常位置差异比较小,因此,可以通过饱和度的值来初步判断这个要处理的区域。

  饱和度呢不要直接拿那个HSL模型里直接计算饱和度的公式去处理,而是只要计算RGB像素的最大值和最小值的差异,如果直接用差异大于某个阈值,判定那些区域需要处理的话,结果又会有很多过渡不自然的地方,因此,想到一种方法是用这个差异做权重,

并且为了可调节效果,还可以把这个差异按照参数在放大。

  即类似于下面的结果:

      Diff = max(b,g,r)-min(b,g,r);

      W = 255 - Diff * cof;

      if (W < 0)  W = 0;

      InvW = 255 - W;

      Result = Src * W + Deinterlace * InvW;

 

            

                  Cof = 1                                Cof = 2

  这种方法对于倾斜的彩色斑点的效果就要稍微弱一些,但是依旧是个不错的解决方案,当然,如果彩色斑点的宽度超过3个像素,估计就要不好弄了。

  本文Demo下载地址:  https://files.cnblogs.com/files/Imageshop/SSE_Optimization_Demo.rar,本算法位于Detection(检测相关)--》彩色斑点去除 菜单下,里面的所有算法都是基于SSE实现的。
  

posted @ 2025-05-21 17:48  Imageshop  阅读(516)  评论(0)    收藏  举报