我想要识别图像上车牌的一个白色像素。我不知道如何接受它,因为汽车的颜色比车牌的白色更“白”。我写了一个可运行的代码,但我必须用鼠标选择一个车牌点,然后我找到了车牌,我可以在它周围画一个矩形。你知道如何自动找到车牌上的一个白色像素吗?
代码如下:
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');发布于 2013-10-26 23:00:47
实际上,你的问题的答案是一个叫做车牌识别(LPR)的应用领域,在这个领域,你可以找到成百上千的程序,或者是用Matlab语言编写的程序,比如没有this的Matlab语言的代码。
无论如何,如果您坚持从头开始编写代码,我建议您不要寻找白色像素!因为您无法区分像素是否是白色的,因为像素值的范围很大(0 - 256^3),而“颜色标签”是一个您不能简单地分配给像素的术语(请参阅this作为对此事实的说明)。取而代之的是,你最好使用盘子的其他“功能”。例如,一个板是一个“矩形”的事实,是一个具有相同的“比例”的边。然后,您可以使用"canny“来查找边缘(图像中光线或颜色的剧烈变化),通过这些边缘可以更容易地判断形状特征。这意味着你可以更容易地在这类图像中找到矩形。
当您找到矩形时,您可以检查这些矩形中的一些其他“特征”,以确保该矩形是一个板子还是在形状上与板子接近的其他形式的对象,而不是内容。例如直方图或任何其他方法。
希望这能有所帮助
干杯
https://stackoverflow.com/questions/19604266
复制相似问题