matlab は車線検出にハフ変換関数を使用します

1. 画像をインポートした後、グレースケール画像、フィルタリング、エッジの強調表示、二値化などの前処理を行います。エッジ検出方法には、「ガウス」、「ソーベル」、「プレウィット」、「ラプラシアン」、「対数」、「平均」、「アンシャープ」、「ディスク」、「モーション」が含まれます。

2. [H,theta,rho] = hough(f3,'RhoResolution', 0.2, 'Theta', -90:0.2:89) 関数を使用して、前処理されたイメージをハフ変換し、H 行列を取得します。

3. P=houghpeaks(H,5,'threshold', ceil(0.3*max(H(:))))関数を使用して、H 行列内の最大 5 つの値の位置を取得します。これは、元の画像に存在する長いもの 直線 5 本。

4. Lines=houghlines(f3,theta,rho,P,'FillGap',20,'MinLength',40)関数を使用して、図内の上記の 5 つの直線の端点を取得します。

5. 実際の車線と長さや傾きが一致しない線分を除外した後、検出された車線を表示する線を描画します。

F=imread('D:\Desktop\2.png');
f=rgb2gray(F);
f1=medfilt2(f,[9,9]);              %中值滤波
H=fspecial('log');               
f2=imfilter(f1,H);                 %突出边缘
thresh=graythresh(f2);
f3=imbinarize(f2,thresh);           %二值化
figure(1),imshow(f3);

[H,theta,rho] = hough(f3,'RhoResolution', 0.2, 'Theta', -90:0.2:89);
figure(2),imshow(imadjust(rescale(H)),'XData',theta,'YData',rho,'InitialMagnification','fit');
title('Hough transform');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(gca,hot);

P=houghpeaks(H,5,'threshold', ceil(0.3*max(H(:))));
x = theta(P(:,2));
y = rho(P(:,1));
plot(x,y,'s','LineWidth',1.5,'Markersize',10,'color','green');

lines=houghlines(f3,theta,rho,P,'FillGap',20,'MinLength',40);
line_length_thred=40;
slope_thred=0.1;
figure(3),imshow(f3);
L= length(lines);
for k=1:L
  xy= [lines(k).point1; lines(k).point2];
  line_length=((xy(1,1)-xy(2,1))^2+(xy(1,2)-xy(2,2))^2)^0.5;
if line_length< line_length_thred
  continue;
end
slope=(xy(1,2)-xy(2,2))/(xy(1,1)-xy(2,1));
if abs(slope)< slope_thred
  continue;
end
line(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
end

前処理されたバイナリ イメージは次のとおりです。

ハフ変換後の 5 つの H 行列の最大値を見つけます。

 (rho, theta) は、(100, -50°) と (400,40°) 付近のグラフ内に 2 つの高い値があることがわかります。

 matlab でのハフ変換後の座標関係によれば、(rho, theta) は (100, -50°) であり、これが右側の検出された車線境界線であることがわかります。(rho, theta) は (400, 40°) で、これはまさに左側で検出された車線の境界線です。

Theta は、-90° と 90° 付近の 3 つの H マトリックスで高い値を検出し、画像内の水平線が検出されたことを示します。

 実際の車線と長さや傾きが一致しない線分を除外した後、検出した車線を線として表示します。

おすすめ

転載: blog.csdn.net/weixin_56832351/article/details/129278880