日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab寻找直线_matlab寻找直线_Matlab 霍夫变换 ( Hough Transform) 直线检测

發布時間:2023/12/10 循环神经网络 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab寻找直线_matlab寻找直线_Matlab 霍夫变换 ( Hough Transform) 直线检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PS:好久沒更新,因為期末到了,拼命復習中。復習久了覺得枯燥,玩玩兒霍夫變換直線檢測

霍夫變換的基本原理不難,即便是初中生也很容易理解(至少在直線檢測上是這樣子的)。

霍夫變換直線檢測的基本原理:(不配圖了,自己在白紙上畫畫,理解更深刻)

一步一步來:

1、在白紙上畫出一個直角坐標系,任意給出一個點;

2、那么,對于點(x0,y0),經過這個點的直線必定滿足y0=k*x0+b, 其中k是直線的斜率,b是直線的截距;

3、上式可以化成b=y0-k*x0, ?可以看作是以-x0為斜率,以y0為截距,在k-b空間上的一個直線方程(k,b為變量);

4、可見,k-b空間上的一條直線, 代表了x-y空間經過特定點的所有直線,而x-y上的特定直線責備k-b空間上的特定點表示;

利用這個原理,我們可以通過一下方法檢測可能出線的直線:

1、得到一副邊緣圖像;

2、對圖像中的每一個邊緣點,在k-b空間中畫出一條直線;

3、在各直線的交點,我們采取“投票”(vote)的方法,即累加:n條直線的交點,改點的值為n;

4、遍歷k-b空間,尋找出先局部最大值(極值)的點,這些點的坐標(k,b)就是圖像中可能出線的直線的斜率和截距;

為了容易理解,這里采用了直線的斜截表達法。

事實上這種方法并不使用,因為某些直線的斜率很大的甚至不存在。

實際操作中,檢測直線的霍夫變換使用含極坐標參數的直線表示型式,簡稱極坐標式(不是極坐標方程,因為還是在笛卡爾坐標下表示)

其中的兩個參數的意義如下圖:

這樣,每條直線對應于theta-p空間下的一條正弦曲線,同樣采用投票求極值的方法尋找曲線

霍夫變換直線檢測的matlab實現:

這里涉及到三個函數:hough,houghpeaks,houghlines:

1、[H,T,R] = hough(BW,'Theta',20:0.1:75)    ; (輸入二值圖像BW,角度范圍與步進(最大,[-90, 90)),返回 H-霍夫空間,T-theta,R-p);

2、PEAKS = houghpeaks(H,NUMPEAKS)      ;(輸入霍夫空間和極值數量,返回極值的坐標)

3、LINES=houghlines(BW,T,R,Peaks)        ;?(返回lines是一個包含圖像中線段首末點、p、theta的結構體)

代碼:

I=imread('1.jpg');

Ihsv=rgb2hsv(I);

Iv=Ihsv(:,:,3); %提取v空間

Ivl=Iv(500:end,:); %截取下半部

Iedge=edge(Ivl,'sobel'); %邊沿檢測

Iedge= imdilate(Iedge,ones(3));%圖像膨脹%新建窗口,繪圖用

figure (2)

imshow(Iedge);

hold on%左方直線檢測與繪制%得到霍夫空間

[H1,T1,R1]= hough(Iedge,'Theta',20:0.1:75);%求極值點

Peaks=houghpeaks(H1,5);%得到線段信息

lines=houghlines(Iedge,T1,R1,Peaks);%繪制線段for k=1:length(lines)

xy=[lines(k).point1;lines(k).point2];

plot(xy(:,1),xy(:,2),'LineWidth',4);

end%右方直線檢測與繪制[H2,T2,R2]= hough(Iedge,'Theta',-75:0.1:-20);

Peaks1=houghpeaks(H2,5);

lines1=houghlines(Iedge,T2,R2,Peaks1);for k=1:length(lines1)

xy1=[lines1(k).point1;lines1(k).point2];

plot(xy1(:,1),xy1(:,2),'LineWidth',4);

end

hold off

輸入圖像:

輸出圖像:

嘛,結果還是令人滿意的嘛~

接下來要準備考試了,7月11號考完,之后想做一個手部識別,所以可能會玩玩haar特征檢測器和光流法跟蹤,大概就這樣。

總結

以上是生活随笔為你收集整理的matlab寻找直线_matlab寻找直线_Matlab 霍夫变换 ( Hough Transform) 直线检测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。