gpt4 book ai didi

matlab - 分割图像中的数字 - Matlab

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:32 25 4
gpt4 key购买 nike

我有一张黑白车牌图像。

这是它的样子:

enter image description here

现在我想为每个数字的背景着色,以便进一步工作从盘子上切下数字。

像这样:

enter image description here

任何帮助将不胜感激。

最佳答案

生成盒子的一种简单方法是 sum您的图像在每一列中向下移动,并寻找总和低于某个阈值的位置(即白色像素低于该列中给定数字的位置)。这将为您提供框应该在哪里的列索引。这些框的宽度可能太窄(即数字的一小部分可能会伸出侧面),因此您可以将边缘扩大 convolving带有小矢量的索引矢量,并寻找大于零的结果值。这是一个使用上面图片的示例:

rawImage = imread('license_plate.jpg');  %# Load the image
maxValue = double(max(rawImage(:))); %# Find the maximum pixel value
N = 35; %# Threshold number of white pixels
boxIndex = sum(rawImage) < N*maxValue; %# Find columns with fewer white pixels
boxImage = rawImage; %# Initialize the box image
boxImage(:,boxIndex) = 0; %# Set the indexed columns to 0 (black)
dilatedIndex = conv(double(boxIndex),ones(1,5),'same') > 0; %# Dilate the index
dilatedImage = rawImage; %# Initialize the dilated box image
dilatedImage(:,dilatedIndex) = 0; %# Set the indexed columns to 0 (black)

%# Display the results:
subplot(3,1,1);
imshow(rawImage);
title('Raw image');
subplot(3,1,2);
imshow(boxImage);
title('Boxes placed over numbers');
subplot(3,1,3);
imshow(dilatedImage);
title('Dilated boxes placed over numbers');

enter image description here

注意: 上面的阈值处理说明了黑白图像可能是 double 类型(值为 0 或 1)、逻辑类型(也具有任一值)的可能性0 或 1),或一个无符号的 8 位整数(值为 0 或 255)。您所要做的就是将 N 设置为白色像素的数量,用作识别包含部分数字的列的阈值。

关于matlab - 分割图像中的数字 - Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com