崔 盼,張榮輝
(新疆農業(yè)大學機械交通學院,新疆 烏魯木齊 830052)
基于MATLAB圖像處理的道路交通標志處理技術的研究
崔 盼,張榮輝
(新疆農業(yè)大學機械交通學院,新疆 烏魯木齊 830052)
根據(jù)目前道路交通標志的各種不同的處理技術,提出了基于MATLAB道路交通標志圖像處理的研究方法,并且用實際的操作驗證了其可靠性。此研究有效地減少了操作者的工作量,盡量避免了人的視覺與反應各方面的影響,有效提高了圖像識別率。
圖像處理;MATLAB;道路交通標志
在MATLAB中,支持的圖像格式主要有bmp,cur,gif,hdf,ico,jpg,pbm,pcx,pgm,png,pnm,ppm,ras,tif,xwd等,其中gif不支持寫,這些格式都可以通過imread函數(shù)來讀入內存,通過調研imview函數(shù)或imshow函數(shù)將矩陣代表的圖像顯示出來,顯而易見,顯示出來的圖像與原圖像是完全一樣的。
(1)圖像灰度化處理
一般情況下,獲取的原始圖像是一個RGB圖像,先將它進行灰度圖像處理,因此需要把RGB圖像轉換成灰度圖像,灰度圖像保存在一個矩陣中,矩陣的每個元素代表一個像素點。矩陣可以是雙精度類型,值域為[0,1];也可以為unit8類型,值域為[0,255]。矩陣的每個元素值代表不同的亮度或灰度,0表示黑色,1(或unit8的255)表示白色。
把RGB圖像轉換為灰度圖像的程序如下:
s=imread(‘C:UsersAdministratorDesktopiaozhi.jpg’)
A=rgb2gray(s)
imshow(A)
(2)直方圖變換增強處理
直方圖是用于表達圖像灰度分布情況的統(tǒng)計圖標。一般而言,在數(shù)字圖像f(m,n)中取不同灰度值的像素的數(shù)目是不同的。對數(shù)字圖像f(m,n)而言,其橫坐標是灰度值r,縱坐標是出現(xiàn)這個灰度值的概率值p(r1)。
I=imread(‘C:UsersAdministratorDesktopiaozhi.jpg’);
imshow(I);
figure,imhist(I)
繪制的直方圖如圖1所示。
直方圖均勻化是一種灰度增強算法。進行直方圖均勻化的程序如下:
I=imread(‘C:UsersAdministratorDesktopiaozhi.jpg’);
J=imadjust(I,[0.15 0.9],[0 1]);
figure,imhist(J,64)
經過均勻變換后的直方圖如圖2所示。
圖1 直方圖
圖2 均勻變換后的直方圖
(3)圖像濾波處理
由于在交通路面上獲取的圖像含有大量的點狀或尖峰狀噪聲,這些噪聲多數(shù)是通過天氣的變化等原因引起的。濾波處理就是要有效地去除這兩類噪聲。濾波處理分為兩類,分別是空間域濾波、頻域濾波。
在這里首先對灰度圖像加入高斯白噪聲,然后進行自適應濾波處理,比較濾波前后對道路交通標志識別的變化情況,具體程序如下:
b=imread(‘C:UsersAdministratorDesktopa.jpg’)
imshow(b)
I=rgb2gray(b)
J=imnoise(I,’gaussian’,0,0.005);
K=wiener2(J,[5 5]);
imshow(I)
figure,imshow(J)
figure,imshow(K)
圖像的邊緣檢測大幅度地減少了數(shù)據(jù)量,并且許多無關信息量,保留了圖像的重要結構屬性。邊緣檢測的方法有很多,主要有sobel算法、canny算法等。
分別用sobel算法、canny算法兩種邊緣檢測方法對原始圖像進行邊緣提取,其程序如下:
I=imread(‘C:UsersAdministratorDesktopa.jpg’)
imshow(I)
b=rgb2gray(I)
BW1=edge(b,’sobel’);
BW2=edge(b,’canny’);
figure
imshow(BW1)
figure,imshow(BW2)
運行結果如圖3所示。
圖3 sobel邊界探測器獲得的結果
圖4 canny邊界探測器獲得的結果
(1)圖像輪廓圖
對圖像分割我們首先找到它的輪廓圖,根據(jù)交通標志那5類圖形輪廓進行有效部分的切割,其輪廓如圖5。
圖5 圖像輪廓圖
I=imread(‘C:UsersAdministratorDesktopa.jpg’)
a=rgb2gray(I)
subplot(1,2,1)
imshow(a)
subplot(1,2,2)
imcontour(a,3)
由于交通標志的形狀有5種,分別是正三角形、圓形、倒三角形、八邊形、矩形。通過對輪廓圖的研究分析提取出符合這五種形狀的有效區(qū)域,為下面圖像的有效區(qū)域的裁剪識別提供基礎。
(2)圖像有效部分的提取
在獲取了邊緣圖和輪廓圖后,根據(jù)邊緣圖和輪廓圖上的圓形、正三角形、倒三角形、八邊形和矩形進行有效部分的切割,提取出圖片上的交通標志。
提取有效部分(即交通標志區(qū)域)的程序如下:
subplot(1,2,1)
imshow circuit.tif
a=imcrop;
subplot(1,2,2)
imshow(a)
本文沿用的圖像處理的基本流程如圖6所示。
圖6 交通標志圖像處理的流程
通過對道路交通標志的研究,利用Matlab進行圖像處理,提取出有效部分。
這種提取方法的優(yōu)點是簡單、快速。但是對具體的交通標識的具體識別不能達到100%;在路況比較復雜,與交通標志形狀一致的情況下,還得需要進一步的提取。
主要介紹了通過MATLAB來進行交通標志圖像處理的技術,該研究是一個極具意義的研究課題,為后續(xù)交通標志識別技術打好基礎。尤其是隨著城市化的進展以及汽車的普及,機動車數(shù)量、出行人數(shù)的大量增加,交通管理日趨重要,交通標志的處理和識別可以為交通管理提供更為有效的技術手段,從而提高交通管理水平,間接減少交通事故發(fā)生率。
[1] 孫巍,孫國榮,張瑞龍. 基于MATLAB的道路交通標志識別[J]. 教育教學論壇,2016,(12):55-57.
[2] 趙小軍,林晨,黃柳仙,楊以月.基于MATLAB圖像處理的車輛檢測與識別[J].數(shù)據(jù)采集與處理,2009,(S1):141-143.
U491.5+21
C
1008-3383(2017)10-0182-02
2017-06-30
新疆維吾爾自治區(qū)自然科學基金(2014211B44)。