【桿號識別】基于計算機視覺實現鐵路接觸網系統桿號識別含Matlab源碼

1 簡介

2 部分代碼

clc;clear;close all;

img_rgb=imread('支柱桿號.png');

I=img_rgb;

%% 灰度化及二值化

I1=rgb2gray(I);

I1=im2bw(I1);

I1=ROI(I1,3,10);

I1=bwareaopen(I1,100);

%% 垂向矯正

tic

BW=edge(I1,'canny');

[H,T,R]=hough(BW);

P=houghpeaks(H,4,'threshold',ceil(0.3*max(H(:))));

lines=houghlines(BW,T,R,P,'FillGap',50,'MinLength',7);

max_len = 0;

hold on;

for k=1:length(lines)

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

? ? len=norm(lines(k).point1-lines(k).point2);

? ? Len(k)=len;

? ? if (len>max_len)

? ? ? ? max_len=len;

? ? ? ? xy_long=xy;

? ? end

end

[~,Index1]=max(Len(:));

K1=-(lines(Index1).point1(2)-lines(Index1).point2(2))/...

? ? (lines(Index1).point1(1)-lines(Index1).point2(1));

angle=atan(K1)*180/pi;

I1 = imrotate(I1,-angle-90,'loose');

I1=ROI(I1,5,5);

%% 幾何矯正

I1=Ajust(I1);

x=Xtrait(I1);

Lx=length(x);

for i=1:Lx-1

? ? if x(i)>=x(i+1)

? ? ? ? break

? ? end

end

nX1=i;

for i=1:Lx-1-nX1

? ? if x(Lx-i)>=x(Lx-i-1)

? ? ? ? break

? ? end

end

nX2=Lx-i;

I1=I1(:,nX1:nX2);

%% 移除小對象

I1=~I1;

I1=bwareaopen(I1,400);

I1=~I1;

%% ROI

I1=~I1;

I1=ROI(I1,1,1);

%% 切割

y=Ytrait(I1);

Py0=1;

figure();title('分割后');

for i=1:4

? ? while ((y(Py0)<1)&&(Py0<length(y)))

? ? ? ? Py0=Py0+1;

? ? end

? ? Py1=Py0;

? ? while (((y(Py1)>=2)&&(Py1<length(y)))||((Py1-Py0)<50))

? ? ? ? Py1=Py1+1;

? ? end

? ? Z=I1(Py0:Py1,:,:);

? ? Py0=Py1;

? ? subplot(1,4,i),imshow(Z);

? ? switch strcat('Z',num2str(i))

? ? ? ? case 'Z1'

? ? ? ? ? ? PIN1=Z;

? ? ? ? case 'Z2'

? ? ? ? ? ? PIN2=Z;

? ? ? ? case 'Z3'

? ? ? ? ? ? PIN3=Z;

? ? ? ? otherwise

? ? ? ? ? ? PIN4=Z;

? ? end

end

%% 分割后預處理

PIN1=ROI(PIN1,1,1);

PIN1=imresize(PIN1,[40 20]);

PIN2=ROI(PIN2,1,1);

PIN2=imresize(PIN2,[40 20]);

PIN3=ROI(PIN3,1,1);

PIN3=imresize(PIN3,[40 20]);

PIN4=ROI(PIN4,1,1);

PIN4=imresize(PIN4,[40 20]);

%% 將分割后的后的車牌字符歸一化處理

n1=CCmatching(PIN1);

n2=CCmatching(PIN2);

n3=CCmatching(PIN3);

n4=CCmatching(PIN4);

marknumber=n1*1000+n2*100+n3*10+n4;

output=num2str(marknumber);

disp(strcat('支柱桿號是:',output));

toc

3 仿真結果

4 參考文獻

[1]許庶, 馬志鋒, 吳煒. 基于計算機視覺的集裝箱號碼識別系統[J]. 電視技術, 2010(5):4.

博主簡介:擅長智能優化算法、神經網絡預測、信號處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

部分理論引用網絡文獻,若有侵權聯系博主刪除。

完整代碼獲取關注微信公眾號天天matlab

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,786評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,986評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,964評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,354評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,554評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,106評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,918評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,093評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,342評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,839評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,107評論 2 375

推薦閱讀更多精彩內容