資源簡介
本資源為本人大學校內圖像處理與視頻分析大型試驗的代碼,泛化性很差,不適用于其他圖片,只能為大家提供圖像處理的簡單思路。

代碼片段和文件信息
clear;
%%?讀入圖像
img=imread(‘1.png‘);
figure
subplot(221)imshow(img)title(‘腦圖‘);
%%?創建圖像副本,灰度化
i_copy=img;
i_copy=rgb2gray(i_copy);
%%?設置ROI感興趣區域8
i_copy=double(i_copy);
[MN]=size(i_copy);
for?j=1:N
????for?i=1:M
????????if(j<=1450&&j>=700&&i>=650&&i<=1000)
????????????if(i_copy(ij)<=25)
????????????????i_copy(ij)=0;
????????????else
????????????????i_copy(ij)=255;
????????????end
????????else
????????????i_copy(ij)=0;
????????end
????end
end
%%?對區域進行線性平滑濾波
a=ones(55);%線性平滑濾波核
i_copy=filter2(ai_copy‘same‘)/25;
i_copy=uint8(i_copy);
subplot(222)imshow(i_copy)title(‘線性平滑濾波ROI‘);
%%?對圖像進行先膨脹后腐蝕處理,保留大部分黑色區域
se1=strel(‘disk‘20);%這里是創建一個半徑為5的平坦型圓盤結構元素
i_copy=imdilate(i_copyse1);
i_copy=imerode(i_copyse1);
subplot(224)imshow(i_copy)title(‘膨脹后腐蝕‘);
%%?裁剪邊緣
for?j=1:N
????for?i=1:M
????????if(j<=1430&&j>=720&&i>=670&&i<=980)
????????????i_copy(ij)=i_copy(ij);
????????else
????????????i_copy(ij)=255;
????????end
????end
end
%%?用Sobel算子進行邊緣檢測后通過膨脹擴大邊沿
i_copy=edge(i_copy‘roberts‘);?
se1=strel(‘disk‘5);
i_copy=imdilate(i_copyse1);
%%?將邊沿繪制在原圖像上,標紅
for?j=1:N
????for?i=1:M
????????if(i_copy(ij)~=0)
????????????img(ij1)=255;
????????????img(ij2)=0;
????????????img(ij3)=0;
????????end
????end
end
subplot(223)imshow(img)title(‘最終結果‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????501461??2018-11-19?07:30??1.png
?????文件???????79490??2018-11-20?14:56??Test1.jpg
?????文件????????1472??2018-11-21?08:51??Test1.m
- 上一篇:內彈道計算程序
- 下一篇:matlab實現RSA公鑰密碼體制
評論
共有 條評論