gpt4 book ai didi

c - 使用opencv去除噪声像素

转载 作者:太空狗 更新时间:2023-10-29 15:07:31 26 4
gpt4 key购买 nike

我正在尝试使用 openCV 从输入图像中检测文本。为此,我需要从图像中去除噪声成分。使用的标准是,如果某个组件的像素数小于 15,则删除该特定组件。

例如,假设下面给定的图像作为 i/p 提供给函数: input image 1

Input image 2

可以看出,这两张图片都包含很多不需要的噪声像素,尤其是第一张。

因此,如果有人能提出实现它的可行方法,我们将不胜感激。

最佳答案

好的,抱歉,但这不在 c 中,也没有使用 opencv,但是我确定在 opencv 中必须可以进行标记>,只是我还没有使用它...所以这可能会有所帮助...基本上这个想法是:

  1. 查找并标记图像中所有单独的 Blob
  2. 移除所有超出特定限制(大小、形状)的 Blob

我在 python 中使用 scipy 实现了这个,但只是为了大小(不是形状,虽然这很容易,并且会去掉第一张图片中的细长线以下)。为此,我们必须知道可接受的字母大小范围——但是你可以在标记后通过查看平均 Blob 大小来确定这一点。你可能仍然会得到字母大小的误报——但这些可能会通过观察它们来消除落在特定区域的集中 Blob 之外(因为文本在空间上是规则的)......最小句子长度也可能是一个强大的约束。

无论如何,代码:

import scipy
from scipy import ndimage

im = scipy.misc.imread('learning2.png',flatten=1)
#threshold image, so its binary, then invert (`label` needs this):
im[im>100]=255
im[im<=100]=0
im = 255 - im
#label the image:
blobs, number_of_blobs = ndimage.label(im)
#remove all labelled blobs that are outside of our size constraints:
for i in xrange(number_of_blobs):
if blobs[blobs==i].size < 40 or blobs[blobs==i].size>150:
im[blobs==i] = 0
scipy.misc.imsave('out.png', im)

结果:

enter image description here enter image description here

关于c - 使用opencv去除噪声像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com