1

我想识别图像上的一个白色像素。我不知道如何识别它,因为汽车的颜色比车牌的白色更“白”。我写了一个可运行的代码,但是我必须用鼠标选择一个车牌点,然后我找到了车牌,我可以在它周围画一个矩形。你知道如何自动找到车板的一个白色像素吗?

这是代码:

clear all;
close all;

I= imread('volvo_frame_0001.bmp');

figure, imshow(I)

level=0.5;

BW=im2bw(I,level);
figure, imshow(BW);

BW2 = bwselect(BW,4);
figure, imshow(BW2);
hold on;

C = corner(BW2);

min_x = min(C(:,1));

max_x = max(C(:,1));

min_y = min(C(:,2));

max_y = max(C(:,2));


figure, imshow(I);
hold on;

BoxPolygon = [min_x, max_y; max_x, max_y; max_x, min_y; min_x, min_y; min_x, max_y;];
line(BoxPolygon(:, 1), BoxPolygon(:, 2), 'Color', 'g');
4

1 回答 1

2

实际上,您的问题的答案是一个称为车牌识别 ( LPR ) 的应用程序领域,您可以在其中找到数百个(如果我们不说数千个)使用 Matlab 或任何其他语言(例如这个免费的 Matlab 代码)的程序。

无论如何,如果你坚持从头开始编写代码,我建议你不要寻找白色像素!因为您无法分辨像素是否为白色,因为像素值范围很广(0 - 256^3),并且“颜色标签”是一个您不能简单地分配给像素的术语(请参阅作为插图事实)。相反,您最好使用印版的其他“功能”。例如,一个板是一个“矩形”,并且是一个具有相同“比率”的边。此后,您可以使用“ canny ”来查找可以更容易判断形状特征的边缘(图像中光线或颜色的剧烈变化)。这意味着您可以更轻松地在此类图像中找到矩形。

当您找到矩形时,您可以检查这些矩形中的一些其他“特征”,以确保该矩形是一个盘子还是其他形状接近盘子的物体,而不是内容。例如直方图或任何其他方法。

希望这可以帮助

干杯

于 2013-10-26T15:00:46.833 回答