我试图按照本教程http://www.mathworks.com/help/vision/examples/automatically-detect-and-recognize-text-in-natural-images.html使用Matlab检测图像中的文本。使用MSER在图像中检测文本
作为第一步,本教程使用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
这里是原始图像
,这里是第一步
[后的图像[请在此输入图像的描述! ] [2] [2]
更新
我玩过参数,但没有一个能够完美地检测文本区域。有没有更好的方法来完成这个比调整数字?调整参数不适用于我可能拥有的各种图像。
我已经尝试了一些参数及其结果:
[mserRegions] = detectMSERFeatures(I, ...
'RegionAreaRange',[30 100],'ThresholdDelta',12);
[mserRegions] = detectMSERFeatures(I, ...
'RegionAreaRange',[30 600],'ThresholdDelta',12);
尝试减少'MaxAreaVariation',因为您的文本和背景的变化非常小(减少误报),由于小字符可能小于200像素(增加真正的正数),因此会减小'RegionAreaRange'的最小值,并且会增加'ThresholdDelta',因为你知道文本和背景之间形成了鲜明的对比(减少误报)。 – kmac
@kmac,你应该让这个答案。 – Dima
我没有测试它......我想如果它真的有效,我可以。 :) – kmac