首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于MSER的图像文本检测

基于MSER的图像文本检测
EN

Stack Overflow用户
提问于 2015-11-16 20:36:42
回答 1查看 3.1K关注 0票数 1

我试图遵循本教程http://www.mathworks.com/help/vision/examples/automatically-detect-and-recognize-text-in-natural-images.html,以检测图像中的文字使用Matlab。

作为第一步,本教程使用detectMSERFeatures检测图像中的文本区域。但是,当我在图像上使用此步骤时,将不会检测到文本区域。

下面是我正在使用的片段:

代码语言:javascript
复制
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

这是最初的图像

下面是第一步之后的图像

更新

我玩过参数,但似乎没有一个能很好地检测到文本区域。有比调整数字更好的方法来完成这个任务吗?调整参数不适用于我可能拥有的广泛的图像阵列。

我尝试过的一些参数及其结果:

代码语言:javascript
复制
[mserRegions] = detectMSERFeatures(I, ...
    'RegionAreaRange',[30 100],'ThresholdDelta',12);



[mserRegions] = detectMSERFeatures(I, ...
    'RegionAreaRange',[30 600],'ThresholdDelta',12);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-16 21:17:41

免责声明:完全未经测试。

尝试减少MaxAreaVariation,因为您的文本和背景几乎没有变化(减少假阳性)。您应该能够将其降到很低的程度,因为它看起来像是以数字方式生成的(如果它是一张文本的图片,它就不能工作了)。

尝试降低RegionAreaRange的最小值,因为小字符可能小于200个像素(增加真正值)。在200岁的时候,你可能正在过滤掉你的大部分短信。

尝试增加ThresholdDelta,因为您知道文本和背景之间存在着鲜明的对比(减少假阳性)。这在过滤方面不会像MaxAreaVariation那么有效,但应该会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33744133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档