我试图遵循本教程http://www.mathworks.com/help/vision/examples/automatically-detect-and-recognize-text-in-natural-images.html,以检测图像中的文字使用Matlab。
作为第一步,本教程使用detectMSERFeatures检测图像中的文本区域。但是,当我在图像上使用此步骤时,将不会检测到文本区域。
下面是我正在使用的片段:
colorImage = imread('demo.png');
I = rgb2gray(colorImage);
% Detect MSER regions.
[mserRegions] = detectMSERFeatures(I, ...
'RegionAreaRange',[200 8000],'ThresholdDelta',4);
figure
imshow(I)
hold on
plot(mserRegions, 'showPixelList', true,'showEllipses',false)
title('MSER regions')
hold off这是最初的图像
下面是第一步之后的图像
更新
我玩过参数,但似乎没有一个能很好地检测到文本区域。有比调整数字更好的方法来完成这个任务吗?调整参数不适用于我可能拥有的广泛的图像阵列。
我尝试过的一些参数及其结果:
[mserRegions] = detectMSERFeatures(I, ...
'RegionAreaRange',[30 100],'ThresholdDelta',12);
[mserRegions] = detectMSERFeatures(I, ...
'RegionAreaRange',[30 600],'ThresholdDelta',12);发布于 2015-11-16 21:17:41
免责声明:完全未经测试。
尝试减少MaxAreaVariation,因为您的文本和背景几乎没有变化(减少假阳性)。您应该能够将其降到很低的程度,因为它看起来像是以数字方式生成的(如果它是一张文本的图片,它就不能工作了)。
尝试降低RegionAreaRange的最小值,因为小字符可能小于200个像素(增加真正值)。在200岁的时候,你可能正在过滤掉你的大部分短信。
尝试增加ThresholdDelta,因为您知道文本和背景之间存在着鲜明的对比(减少假阳性)。这在过滤方面不会像MaxAreaVariation那么有效,但应该会有所帮助。
https://stackoverflow.com/questions/33744133
复制相似问题