资源简介

本资源为本人大学校内图像处理与视频分析大型试验的代码,泛化性很差,不适用于其他图片,只能为大家提供图像处理的简单思路。

资源截图

代码片段和文件信息

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

评论

共有 条评论