IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 5.Matlab图像空域滤波和边缘检测 -> 正文阅读

[人工智能]5.Matlab图像空域滤波和边缘检测

Matlab图像做图像空域滤波及边缘检测。

题目示例1

  1. 对一幅给定的图像加噪后分别用邻域平均和中值滤波器滤波之,并通过改变加噪程度,判断两种方法的差异及处理效果。
    (注:图像加噪函数imnoise(p1,‘salt & pepper’,p2)使用方法请查询HELP)

这里的我们以下图为例演示。
在这里插入图片描述

题目示例1代码

x1=imread('lena256.bmp');
subplot(2,2,1)
imshow(x1)
title('原图')
x2=imnoise(x1,'salt & pepper',0.05);
subplot(2,2,2)
imshow(x2)
title('原图加噪后')
x2=double(x2);
[L1,L2]=size(x1);
for i=1:L1
    for j=1:L2
%         if(x2(i,j))
        if(i==1&j==1)
            x3(i,j)=round((x2(i,j)+x2(i+1,j)+x2(i,j+1))/3);
        elseif(i==1&j==256)
            x3(i,j)=round((x2(i,j)+x2(i+1,j)+x2(i,j-1))/3);
        elseif(i==256&j==1)
            x3(i,j)=round((x2(i,j)+x2(i-1,j)+x2(i,j+1))/3);
        elseif(i==256&j==256)
            x3(i,j)=round((x2(i,j)+x2(i-1,j)+x2(i,j-1))/3);
        elseif(i==1)
            x3(i,j)=round((x2(i,j)+x2(i+1,j)+x2(i,j+1)+x2(i,j-1))/4);
        elseif(i==256)
            x3(i,j)=round((x2(i,j)+x2(i-1,j)+x2(i,j+1)+x2(i,j-1))/4);
        elseif(j==1)
            x3(i,j)=round((x2(i,j)+x2(i+1,j)+x2(i,j+1)+x2(i-1,j))/4);
        elseif(j==256)
            x3(i,j)=round((x2(i,j)+x2(i+1,j)+x2(i,j-1)+x2(i-1,j))/4);
        else
            x3(i,j)=round((x2(i,j)+x2(i-1,j)+x2(i,j+1)+x2(i,j-1)+x2(i+1,j))/5);
        end
    end
end
subplot(2,2,3)
imshow(uint8(x3))
title('邻域平均法')
 
for i=1:L1
    for j=1:L2
        if(i==1&j==1)
            ord=sort([x2(i,j),x2(i+1,j),x2(i,j+1),x2(i+1,j+1)]);
            x4(i,j)=ord(2);
        elseif(i==1&j==256)
            ord=sort([x2(i,j),x2(i+1,j),x2(i,j-1),x2(i+1,j-1)]);
            x4(i,j)=ord(2);
        elseif(i==256&j==1)
            ord=sort([x2(i,j),x2(i-1,j),x2(i,j+1),x2(i-1,j+1)]);
            x4(i,j)=ord(2);
        elseif(i==256&j==256)
            ord=sort([x2(i,j),x2(i-1,j),x2(i,j-1),x2(i-1,j-1)]);
            x4(i,j)=ord(2);
        elseif(i==1)
            ord=sort([x2(i,j),x2(i+1,j),x2(i,j+1),x2(i+1,j+1),x2(i,j-1),x2(i+1,j-1)]);
            x4(i,j)=ord(3);
        elseif(i==256)
            ord=sort([x2(i,j),x2(i-1,j),x2(i,j+1),x2(i-1,j+1),x2(i,j-1),x2(i-1,j-1)]);
            x4(i,j)=ord(3);
        elseif(j==1)
            ord=sort([x2(i,j),x2(i+1,j),x2(i-1,j),x2(i+1,j+1),x2(i-1,j+1),x2(i,j+1)]);
            x4(i,j)=ord(3);
        elseif(j==256)
            ord=sort([x2(i,j),x2(i+1,j),x2(i-1,j),x2(i+1,j-1),x2(i-1,j-1),x2(i,j-1)]);
            x4(i,j)=ord(3);
        else
            ord=sort([x2(i,j),x2(i+1,j),x2(i-1,j),x2(i+1,j+1),x2(i-1,j+1),x2(i,j+1),x2(i+1,j-1),x2(i,j-1),x2(i-1,j-1)]);
            x4(i,j)=ord(5);
        end
    end
end
 
%x4=medfilt2(x2,[3,3]);
%x4=filter2(fspecial('average',3),x2);
subplot(2,2,4)
imshow(uint8(x4))
title('中值滤波法')

运行结果为
在这里插入图片描述

题目示例2

  1. 寻找或设计一幅适合分割技术应用的图像
    1)分别利用Priwitt及Sobel的两个微分算子进行边缘检测;
    2) 比较Priwitt及Sobel各自两个微分算子边缘检测结果的差异;
    3)比较Priwitt与Sobel微分算子边缘检测结果的差异。

题目示例2代码

p1=[1 1 1;
    0 0 0;
    -1 -1 -1]/3;
p2=[1 0 -1;
    1 0 -1;
    1 0 -1;]/3;
s1=[1 2 1;
    0 0 0;
    -1 -2 -1]/4;
s2=[1 0 -1;
    2 0 -2;
    1 0 -1]/4;
x1=imread('lena256.bmp');
[L1,L2]=size(x1);
x1=double(x1);
for i=1:L1
    for j=1:L2
        if(i==1||i==256||j==1||j==256)
            xp1(i,j)=x1(i,j);
            xp2(i,j)=x1(i,j);
            xs1(i,j)=x1(i,j);
            xs2(i,j)=x1(i,j);
        else 
            window=[x1(i-1,j-1),x1(i-1,j),x1(i-1,j+1);
                x1(i,j-1),x1(i,j),x1(i,j+1);
                x1(i+1,j-1),x1(i+1,j),x1(i+1,j+1);];
                xp1(i,j)=sum(sum(window.*p1));
                xp2(i,j)=sum(sum(window.*p2));
                xs1(i,j)=sum(sum(window.*s1));
                xs2(i,j)=sum(sum(window.*s2));
                
        end
    end
end
subplot(2,3,1)
imshow(uint8(x1))
title('原图')
subplot(2,3,2)
imshow(uint8(abs(xp1)))
title('Priwitt提取水平边缘')
subplot(2,3,3)
imshow(uint8(abs(xp2)))
title('Priwitt提取竖直边缘')
 
subplot(2,3,4)
imshow(uint8(x1))
title('原图')
 
subplot(2,3,5)
imshow(uint8(abs(xs1)))
title('Sobel提取水平边缘')
subplot(2,3,6)
imshow(uint8(abs(xs2)))
title('Sobel提取竖直边缘')

运行结果为
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:22:35  更:2022-04-09 18:24:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:51:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码