我想识别图像上的一个白色像素。我不知道如何重新点燃它,因为汽车的颜色比汽车板的白色更“白”。我写了一个可运行的代码,但我必须用鼠标选择一个车牌点,然后我找到了车牌,我可以在它周围画一个矩形。 你知道如何自动找到车牌的一个白色像素吗?
以下是代码:
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');
答案 0 :(得分:2)
实际上,您的问题的答案是一个名为牌照识别的应用程序字段(LPR),您可以在其中找到数百个(如果我们不说数千个)使用Matlab或任何其他语言的程序,例如作为this免费的Matlab代码。
无论如何,如果你坚持从头开始编写代码,我建议你不要寻找白色像素!因为你不能说像素是白色的,因为像素值在宽范围内(0 - 256 ^ 3)而且“颜色标签”是一个你不能简单地分配给像素的术语(参见{{3})作为事实的例证)。相反,你最好使用板的其他“功能”。例如,板是“矩形”并且具有相同的“比率”的侧面的事实。此后,您可以使用“this”查找边缘(图像中光线或颜色的剧烈变化),通过这些边缘可以更容易地判断形状特征。这意味着你可以更容易地在这种图像中找到矩形。
当您找到矩形时,您可以检查这些矩形内的其他一些“特征”,以确保矩形是一块板还是某种形状的物体,它的形状接近于板状,而不是内容。例如直方图或任何其他方法。
希望这有帮助
干杯