一、簡介
1 車道線檢測演算法設計
一般道路主要由直道和彎道兩部分構成,故車道線也相應的分為直車道線和彎曲車道線兩種型別,本節首先對道路影像劃定感興趣區以提高運算效率,然后針對兩種不同型別的車道線選取不同的檢測方法,對于直車道線,利用Hough變換進行直線的提取,篩選并繪制出離車輛最近的兩條直車道線;而對于彎曲車道線,則通過最小二乘法利用拋物線模型進行曲線擬合,并根據拋物線二次項系數判別彎道轉向,
2 確定感興趣區
一般車載攝像機采集到的道路影像可劃分為天空、路面和周圍景物,通過對道路影像進行分析很容易發現車道線主要分布于整個道路影像的下方區域,上方其余區域以及道路區域兩側是天空、樹木等非路面區域,為了進一步縮小搜索范圍,降低演算法復雜度,增強車道線檢測的實時性和精確性,應準確進行感興趣區的定位,故需確定包含車道線等有效資訊的區域邊界,
3 基于Hough變換的直車道線檢測
Hough變換是影像處理中幾何特征提取最基本的演算法之一,由Paul Hough于1962年提出,后由Richard Duda和Peter Hart于1972年推廣使用,Hough變換通過將影像空間的引數映射到引數空間,并結合一種投票演算法來檢測具有特定形狀的物體,Hough變換是目前直線車道檢測應用最廣的方法之一,魯棒性好、抗干擾能力強,對斷裂或者遮擋的車道線也能夠很好的將其檢測出來,
4 Hough變換原理
Hough變換的作業原理是利用影像空間的點和引數空間的線之間存在的對偶關系,將影像空間的問題轉化到引數空間來解決,
5 Hough 變換的具體實作步驟如下:
(1) 建立一個引數(λ,θ) 空間的二維的陣列,該陣列相當于一個累加器,
(2) 順序搜索影像中所有目標(黑色)像素,對于每一個目標像素,在引數空間中根據式(3)找到對應位置,然后在累加器的對應位置加 1,
(3) 求出引數空間(累加器)中最大值,其位置為(λ’,θ’),
(4) 通過引數空間位置(λ’,θ’) ,根據式(3)找到影像空間中相對應的直線引數,
二、源代碼
% 含檢測模塊的主程式(Otsu閾值分割,矩形感興趣搜索區域)
close all;
clc;
clear;
tic;%程式執行的起始時間
k=1;
% mri=uint8(zeros(128,160,3,120));%建立4維的矩陣,前面的兩維不管,由后面兩維決定
% T,n為檢測模塊判斷標志
T=0;
n=0;
a=0;
for frame=1:100
T=T+1;%%%%%%用于記錄第幾幀影像
startNum=frame;
imStr=num2str(startNum);
%imName=strcat('1000_',imStr,'.bmp');%以上幾句實作字串連接的操作
imName=strcat('E:\DCIM\shipinchuli\shipinchuli2\m',imStr,'.jpg');%以上幾句實作字串連接的操作
orig=imread(imName);%讀取圖片
origGray = rgb2gray(orig);%圖片灰度化
mylane=origGray;
[height,width] = size(origGray);
figure,imshow(origGray),title('origGray');%顯示灰度圖片
%%%%%%水平平均灰度投影
% grayProject=areaskybar(origGray,width,height);
% figure,barh(grayProject,0.5); %繪制二維水平條形圖
%%%%%%白線Otsu閾值分割,得到影像segmentorig
OtsuGray=origGray;
[threshOtsu,segmentorig]=autothresh(OtsuGray,height,width);%大津法閾值分割函式 回傳最佳閾值和部分影像塊 暫時好像沒用著
% figure,imshow(segmentorig),title('segmentorig');
%
% imhist(origGray); %繪制灰度直方圖
% [counts,x]=imhist(origGray);
% orighictr=histeq(origGray); %增強對比度
% figure,imshow(orighictr),imshow('orighictr');
%%%%%邊緣二值影像,sobel算子
[origEdgeBw,sobthresh]= edge(origGray,'sobel','vertical'); % B、Bw表示二值化 用Sobel邊緣檢測算子進行邊緣檢測 回傳二值影像和閾值
%origEdgeBw 產生一個掩膜矩陣
%sobthresh 閾值
% [origEdgeBw,sobthresh]= edge(origGray,'sobel');
% origEdgeBw=sobell(height,width,origGray);%自己編的sobel算子函式
% figure,imshow(origEdgeBw),title('edgedIm');
%邊緣灰度影像
edgedIm = double(origGray).*double(origEdgeBw);%通過掩膜矩陣與原影像相乘,類似于與運算
% figure,imshow(edgedIm),title('edgedIm');
laneDispF = floor( MyFilt(edgedIm,100) ); % 濾波 感覺沒變化
% figure,imshow(laneDispF),title('laneDisp');
% figure;
% segorigF=floor(MyFilt(segmentorig,100));%濾波
% figure,imshow(segorigF),title('segorig Filt');
skyline=areasky(origGray,width,height); %求陸天分界線 第一幅圖:79行
if T==1 %第一幅影像用檢測模塊進行檢測,后面的影像用跟蹤實作
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 呼叫檢測模塊%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[lData,rData,lReservedPnt,rReservedPnt,Detorig]=detect(orig,origGray,laneDispF,segmentorig,imName);
% lData,rData為左右擬和直線上間隔取點的坐標陣列
Imrsize=imresize(Detorig,2);%變為Detorig的2倍
mri(:,:,:,k)=Imrsize;
k=k+1;
else
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 進入跟蹤階段%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 從記錄的邊界點附近尋找當前的邊界點
% 左邊界
subL = 0;
for t = 1:lReservedPnt
for temp = lData(t,1)-10 : lData(t,1)+10 % 在左右各10個象素內搜索特征點
if( temp>0 && temp<=width && segmentorig(height-lData(t,2),temp) ~= 0 )
subL = subL + 1;
leftLanePnts(subL,1) = temp;
leftLanePnts(subL,2) = lData(t,2);
break;
end
end
end
% 右邊界
subR = 0;
for t = 1:rReservedPnt
for temp = rData(t,1)-10 : rData(t,1)+10
if( temp>0 && temp<=width && laneDispF(height-rData(t,2),temp) ~= 0 )
subR = subR + 1;
rightLanePnts(subR,1) = temp;
rightLanePnts(subR,2) = rData(t,2);
break;
end
end
end
三、運行結果

四、備注
完整代碼或者代寫添加QQ1575304183
往期回顧>>>>>>
【影像識別】國外車牌識別matlab原始碼
【影像識別】基于cnn卷積神經網路之驗證碼識別matlab原始碼
【影像識別】基于svm植物葉子疾病檢測和分類matlab原始碼???????
【影像識別】路面裂縫識別含GUI原始碼matlab原始碼???????
【影像識別】基于RGB和BP神經網路的人民幣識別系統含GUI界面matlab原始碼???????
【影像識別】條形碼識別系統matlab原始碼???????
【影像識別】基于不變矩的數字驗證碼識別含GUI界面matlab原始碼???????
【影像識別】基于模板匹配之手寫數字識別系統GUI界面matlab原始碼???????
【影像識別】基于貝葉斯分類器之目標識別matlab原始碼
【影像識別】身份證號碼識別matlab原始碼
【影像識別】條形碼識別系統matlab原始碼???????
【影像分類】基于極限學習分類器對遙感影像分類matlab原始碼???????
【影像識別】基于BP神經網路之字母識別matlab原始碼
【影像特征處理】指紋影像細節特征提取matlab原始碼
【影像識別】基于反饋神經Hopfield的數字識別matlab原始碼
【影像識別】基于二值膨脹差分和椒鹽濾波之教室內人數識別系統matlab原始碼
【影像識別】火災檢測matlab原始碼GUI
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259469.html
標籤:其他
