Kou*_*tav 5 c opencv noise-reduction
我试图使用openCV从输入图像中检测文本.为此,我需要从图像中删除噪声成分.正在使用的标准是,如果某个组件的像素数小于15 am,则消除该特定组件.
例如,假设下面给出的图像作为函数的i/p提供:


可以看出,这两个图像都包含许多不需要的噪声像素,特别是第一个.
因此,如果任何人都可以提出实现它的可行方法,那将非常感激.
好吧,抱歉,但这不在c并且它没有使用opencv,但是我确信标签必须可以在opencv,只是我还没有使用它......所以这可能会有所帮助......基本上这个想法是:
python在这里,我在using中实现了这一点scipy,但只是为了大小(而不是形状,尽管这很容易并且可以消除下面第一张图中的长细线)。为此,我们必须知道字母大小的可接受范围 - 但是您可以在标记后通过查看平均斑点大小来确定这一点。您可能仍然会得到字母大小的误报 - 但可以通过观察它们来消除这些误报落在集中斑点的某个区域之外(因为文本在空间上是规则的)...此外,最小句子长度可能是一个强大的约束。
无论如何,代码:
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)
Run Code Online (Sandbox Code Playgroud)
结果:

| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |