大家好:我是毛華望。目前在參加紫光同創(chuàng)PGL22G開發(fā)平臺(tái)試用。連載第4篇。
先說一下邊緣檢測(cè)吧。
這就是邊緣檢測(cè)效果圖。
圖像的邊緣其實(shí)就是像素的突變,也就是左右兩邊的數(shù)值有較大的變化。比如說:影子邊緣吧。就是白色突然過渡到了黑色的過程。檢測(cè)邊緣的原理也就是這樣的,只要左右2邊的圖像數(shù)值變化夠大就認(rèn)為是邊緣。
邊緣檢測(cè)的大概說明也就說這些。
準(zhǔn)備的實(shí)現(xiàn)方案:
因?yàn)槲沂诌厸]有視頻輸入端,沒有視頻輸出端。所以,準(zhǔn)備用串口進(jìn)行圖像的輸入輸出。
第一步,用matlab把圖像變成數(shù)據(jù),在用串口輸入和輸出。
第二步, 串口把圖像數(shù)據(jù)送到FPGA里面,在FPGA里進(jìn)行邊緣檢測(cè),在用串口傳輸回來。
呵呵,本來是想用python的,不過python不太熟還是算了吧。用matlab吧。
還是先完成基礎(chǔ)內(nèi)容吧。
第一部分:程序部分
串口通信部分。
找了一下串口的程序以及有了。Dome里面有了。
程序是有了。來找個(gè)串口調(diào)試助手測(cè)試一下。
和程序的效果一樣,
發(fā)送HELLOALINX
目前發(fā)送和回傳就都有了。
第二部分:matlab部分。
安裝matlab,過程省略。
f=imread('girl.png');
if ndims(f) == 3
f=rgb2gray(f);
end
f1 = imresize(f, [200,200]);
imshow(f1)
上面附上matlab程序部分。這樣圖像的數(shù)據(jù)就出來了。
雙擊f1
這就是圖像的每個(gè)像素點(diǎn)數(shù)據(jù)。有了這些數(shù)據(jù),到時(shí)候邊緣檢測(cè)的時(shí)候。就把這些數(shù)據(jù)串口發(fā)送到FPGA里面進(jìn)行處理。
我們必須把數(shù)據(jù)導(dǎo)出來才方便使用啊。還是把數(shù)據(jù)用txt輸出吧。這樣串口就能發(fā)送出去了。
這樣的話,就會(huì)有一個(gè)sobel_in.txt的文本生成。好,現(xiàn)在來查看一下是不是我們想要的數(shù)據(jù)。
跟matlab里面保存的數(shù)據(jù)是一樣的??梢粤?。
第三部分:modelsim仿真
目前只是初級(jí)階段,還不需要仿真。這里暫時(shí)就是空白吧。當(dāng)然,作為老牌的FPGA工程師。Modelsim的軟件還是有的。至于安裝和破解吧。哈哈。你們都是FPGA工程師都會(huì)吧(其實(shí)我早就忘記了,需要百度找教程才能安裝了吧。)。
到這里,fpga部分的基礎(chǔ)工作,matlab數(shù)據(jù)的基礎(chǔ)工作,modelsim的基礎(chǔ)工作就都已經(jīng)完備了。
下一篇就要開始專注邊緣檢測(cè)的部分了。敬請(qǐng)期待。