【问题标题】:MATLAB: Prepare an RGB image for digit and letter recognitionMATLAB:准备用于数字和字母识别的 RGB 图像
【发布时间】:2020-12-01 10:42:29
【问题描述】:

我需要一个 Matlab 函数来准备用于数字和字母识别的图像。

我现在需要的是将原始RGB图像转换为二进制图像,其中每个像素都是白色的,除了对应于字母和数字的像素,以及所有数字和字母必须出现彩色/饱和,即出现满颜色的。

这是我测试过的代码。如您所见,字母或数字的某些像素是白色的。

I = imread('img6.png');   % read the image into the matrix
Ig = rgb2gray(I);

Icon = imadjust(Ig);

subplot(2,2,1)
imshow(Ig)
subplot(2,2,2)
imshow(Icon)
subplot(2,2,3)
imhist(I)
subplot(2,2,4)
imhist(Icon)

1- 我们如何将原始图像转换为高对比度图像?

2- 如何去除字母和数字周围的阴影?

【问题讨论】:

    标签: image matlab image-processing image-thresholding


    【解决方案1】:

    要锐化图像,您可以使用imfilter 方法。这需要一个图像和一个内核(在本例中为锐化内核)并将内核应用于图像。例如:

    kernel = [0 -1 0;
    -1 5 -1;
    0 -1 0]
    sharpened_image = imfilter(image, kernel)
    

    【讨论】:

    • 感谢您的回答,但 imfilter 不会产生比 imadjust 更好的输出。请查看编辑后的帖子。
    • 函数imfilter 允许您放入自定义内核,这可能会有所帮助,但您应该只使用imadjust 就可以了。对于您的项目,您处理的图像只需要一个阈值过滤器(一些灰色)来区分字母的形状。您可能需要考虑某种 blob 拟合算法,但您不需要进一步改进它。
    • 感谢您的评论。我会尽力采纳你的建议
    猜你喜欢
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多