【问题标题】:Image processing - Character count in dot printed text图像处理 - 点打印文本中的字符数
【发布时间】:2016-05-11 12:29:14
【问题描述】:

我必须计算印在饮料罐中的字符[1]。到目前为止,我已经完成了去除噪音和不需要的像素的工作,现在我的文本可以清楚地阅读2,但是有什么方法可以正确计算它们。 Ocr 无法检测到此文本。或者我应该使用某种算法加入这些点并继续使用 ocr 功能?

ROI of image

这是给我上图的代码。

clear all; close all;
a=imread('coke.jpg');
gray=rgb2gray(a);
thres=150;
lbw=double(gray>thres);
imwrite(lbw,'--\OCR\output.png');

a=imread('output.png');
c=imresize(a,.5);
b = im2bw(c, .9);
b=imcomplement(b);
imwrite(b,'compli.png');

【问题讨论】:

  • 我认为 OCR 失败是因为罐子周围的边缘,而不是它无法读取文本,你想剪掉罐子周围的 4 个角。
  • @GameOfThrows 不。我已经删除了所有内容并转换为二进制图像,只有白色文本,其他所有内容都是黑色的。 ROI 只是文本。
  • 显示执行此操作的代码。您的问题将被关闭,因为您没有向我们展示您尝试了什么或遇到了什么问题。
  • @GameOfThrows 不需要识别字符,计数就足够了。
  • @rayryeng 我还没有对代码做太多,我已经在 ROI 中发布了图片

标签: matlab image-processing ocr matlab-cvst


【解决方案1】:

您绝对应该加入这些点。我要尝试的第一件事是 imclose 函数,它会进行形态闭合(先膨胀后腐蚀)。

例如,你可以试试这个:

im = imread('dotMatrix.png');
im2 = imclose(im, strel('line', 5, 90));
im3 = imclose(im2, strel('line', 5, 45));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多