資源簡介
自編的Canny邊緣檢測算子,通過與maltab自帶的邊緣檢測算子進(jìn)行對比發(fā)現(xiàn)我們編寫的canny算子的性能幾乎和matlab自帶的性能一致。該程序注重減少for循環(huán),在速度上具有一定的優(yōu)勢,且附帶該論文的pdf。希望能夠?qū)Υ蠹矣兴鶐椭?img width=510 src=http://www.sh-liguang.com/pic/235479.jpg />
代碼片段和文件信息
function?[?OutputData?]?=?BuildEdge(?InputData1InputData2?)
%InputData1?低閾值下的邊緣圖像?InputData2?高閾值下的邊緣圖像?OutputData?最終輸出的邊緣圖像
%???我們將于高閾值圖像相連接的低閾值圖像的像素點進(jìn)行合并,得到最終的邊緣圖像
[Height?Width]?=?size(InputData1);
OutputData?=?InputData2*0.5;
BreakFlag?=?0;
while?BreakFlag?==?0
????BreakFlag?=?1;
????for?x?=?2:Width-1
????????for?y?=?2:Height-1
????????????if?OutputData(yx)?==?0.5
????????????????OutputData(yx)?=?1;
????????????????IdxTmp?=?find((InputData2(y-1:y+1x-1:x+1)?==?0)?&?(InputData1(y-1:y+1x-1:x+1)?~=?0)?&?(OutputData(y-1:y+1x-1:x+1)?==?0));
????????????????if?~isempty(IdxTmp)
????????????????????RowTmp1?=?rem(IdxTmp-1?3)+1;
????????????????????ColTmp1?=?floor((IdxTmp-1)/3)+1;??
????????????????????RowTmp?=?y+RowTmp1-2;
????????????????????ColTmp?=?x+ColTmp1-2;
????????????????????Idx?=?(ColTmp-1)*Height+RowTmp;
????????????????????OutputData(Idx)?=?0.5;
????????????????????BreakFlag?=?0;
????????????????end
????????????end
????????end
????end
end
%?OutputData?=?OutputData?>?0;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????7312809??2013-06-12?22:00??Canny\A?Computational?Approach?to?Edge?Detection.pdf
?????文件???????2951??2013-06-16?16:47??Canny\BuildEdge.asv
?????文件???????1086??2013-06-16?18:54??Canny\BuildEdge.m
?????文件???????4429??2013-06-16?18:34??Canny\CannyMain.asv
?????文件???????5273??2013-06-16?19:20??Canny\CannyMain.m
?????文件????????750??2013-06-16?19:09??Canny\GaussFilter.asv
?????文件????????456??2013-06-16?19:11??Canny\GaussFilter.m
?????文件??????66614??2013-06-13?10:14??Canny\Lena.bmp
?????目錄??????????0??2013-06-16?19:21??Canny
-----------?---------??----------?-----??----
??????????????7394368????????????????????9
評論
共有 條評論