8 图像去噪 滤波 锐化 边缘检测案例(matlab程序)

news2024/9/23 17:12:03

1.简述

       学习目标:一个图像处理的经典综合案例

一、图像锐化的原理
  图像锐化的目的是凸显物体的细节轮廓,通常可以用梯度、Laplace算子和高通滤波来实现,下面一一说明:

1、梯度法
梯度计算可以参考 小白学习图像处理——canny边缘检测算法 ,假设Gx为x方向的方向导数,Gy为y方向的方向导数,那么梯度就是Gx和Gy的平方和开根号:
G = [ G x 2 + G y 2 ] 2 G = [Gx^2 + Gy^2]^2
G=[Gx 
2
 +Gy 
2
 ] 
2
 

其中,计算Gx和Gy的过程就是用一个预先定义的矩阵和图像做一次二维卷积,我们把这个预先定义的矩阵成为模板算子,计算Gx和Gy的算子有很多种。

二、边缘检测
  在matlab中预置了一些算子,如:roberts、sobel、prewitt、log 和 canny 算子等

1、图像的线段检测
  首先谈谈图像线段的检测,线段检测的原理类似梯度,线段通常具有这样的特点,线段上的灰度与左右两侧的灰度相比更加突出,因为它的灰度要么比两边都大,要么比两边都小,我们可以将像素点的灰度同时和两边灰度进行对比,判断它是否属于某一条边。

 

2.代码


clear;clc;close all
%%   读取图像
I=imread('1.jpg');
try
    I=rgb2gray(I);    %如果是RGB图像,则转化为灰度图
end

%%    添加噪声
I=imnoise(I,'salt & pepper',0.04);     % 叠加密度为0.04的椒盐噪声
figure
imshow(I)
title('原图')

%%   图像去噪
I=medfilt2(I,[2 4]);   %采用二维中值滤波函数对图像滤波
figure
imshow(I)
title('去噪之后的图像')

%%   图像锐化
[M,N]=size(I);   % 计算图像尺寸
f=double(I);     % 数据类型转换,MATLAB不支持图像的无符号整型的计算
g=fft2(f);       % 二维傅立叶变换,得到频域信息
g=fftshift(g);   % 0频率移到(M/2,N/2)处

n=2;             % 二阶巴特沃斯滤波器
D0=3;            % 巴特沃斯滤波器的D0,D0越大,保留的高频信号就越少(对于不同的图片,可以自行调节,以便得到好的效果)
for i=1:M
    for j=1:N 
        D=sqrt((i-M/2)^2+(j-N/2)^2);   %计算离0频率(M/2,N/2)的距离
        h=1/(1+(D0/D)^(2*n));          %计算传递函数的值
        output(i,j)=h*g(i,j);          %高通滤波之后(i,j)处的值
    end
end
result=ifftshift(output);              %与g=fftshift(g)对应,还原回去
I=ifft2(result);                       %傅里叶反变换
I=uint8(real(I));                      %得到滤波之后的图像(锐化之后的图像)
figure
imshow(I)                               %滤波后图像显示
title('锐化之后的图像')

%%   直方图均衡化处理
I=histeq(I);                             %得到直方图均衡化之后的图像
figure
imshow(I)
title('直方图均衡之后的图像')

%%   边缘检测
I1=edge(I,'prewitt');
I2=edge(I,'roberts');
I3=edge(I,'sobel');

figure
imshow(I1)
title('prewitt边缘检测之后的图像')

figure
imshow(I2)
title('roberts边缘检测之后的图像')

figure
imshow(I3)
title('sobel边缘检测之后的图像')
 

3.运行结果

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/713498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据可视化01_t-SNE

1. t-SNE的定义 t-SNE stands for t-distributed Stochastic Neighbor Embedding. 代表 t 分布随机邻域嵌入。 t-SNE 获取高维数据并将其降低到较低维空间,同时保持数据点之间的关系尽可能接近其原始排列。 它是一种无监督机器学习算法,由 Laurens va…

8年测试经验总结,性能测试流程与性能测试学习路线,卷起来...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试流程 1、…

运输层概述、端口号、复用与分用

1.运输层概述、端口号、复用与分用 笔记来源: 湖科大教书匠:运输层概述 湖科大教书匠:运输层端口号、复用与分用的概念 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 1.1 运输层概述 计算机网络体系结构中的物…

交流220v转12v给单片机供电芯片

客户的应用需求:AD220V转DC12V 体积要非常小,单片机使用,单片机设备12V 电流很小不会超过100mA? 【AD220V转DC12V体积小的问题】 问题:我需要将交流电(220V)转换为直流电(12V&…

fastadmin后台 点击开关 弹出 你没有权限访问 角色组里面添加了,除了超级管理员其他的只要用状态开关就,没权限 解决办法

首发地址:https://ask.fastadmin.net/question/22863.html 然后再对应的后台控制器里面 加入 protected $multiFields 你设计数据库的开关字段; //注意是字段,不是填写: multi 示例: protected $multiFields show_switch; 也可以多个 p…

QWebEngine应用(一)

前言 很早以前就听说过Qt也能显示网页,一直没有机会真正研究应用起来,刚好最近项目中使用到了QWebEngine内嵌浏览器打开第三方的网站,使用的Qt版本为5.15,踩了不少的坑,这里做个总结。 QWebEngine架构 Qt WebEngine…

亚马逊云科技连续12年被评为“领导者”,用实力赋能企业出海

从人类发展历史上看,无论是刳木为舟,剡木为楫,还是郑和下西洋,亦或是欧洲大航海时代,人类对于出海探索这件事就从未停止。而在如今的时代,相似的故事依旧在上演。过去的十年,是中国互联网最为繁…

多路码流RTSP传输并对每路视频图像叠加OSD信息

一、先保证多路视频码流保存到本地,并且分辨率正确 注意点: 1.VPSS分两路通道 2.VENC分两路通道 if(s32ChnNum>1) {s32Ret SAMPLE_COMM_SYS_GetPicSize(gs_enNorm, enSize[0], &stSize);if (HI_SUCCESS ! s32Ret){SAMPLE_PRT("SAMPLE_COM…

下载网页视频的软件 下载网页视频的方法

视频已然成为一种非常有力的展示方式,我们想要下载视频内容,需要用到下载网页视频的软件,如今这类软件有很多。下载网页视频的方法,也因为使用的软件不同,方法各异。下面我们就来看详细介绍吧! 一、下载网…

【DC-DC】AP9196 DC-DC升压恒流电源管理芯片 升降压3-12V输出9V LED驱动方案

1,方案;升降压3-12V输出9V LED驱动方案BOM表 ​ 2,方案;升降压3-12V输出9V LED驱动方案线路图 3,产品说明 AP9196 是一系列外围电路简洁的宽调光比升压调光恒流驱动器,适用于 3-40V 输入电压范围的 LED照明领域。AP9196 采用我…

Leveldb代码阅读笔记

整体架构 如上图,leveldb的数据存储在内存以及磁盘上,其中: memtable:存储在内存中的数据,使用skiplist实现。immutable memtable:与memtable一样,只不过这个memtable不能再进行修改&#xff0…

使用模拟电路制造CPU——从硬件到软件的设计

计算机中蕴藏的哲理 最基本的思想是:通过基本电路的接线,确立输入-输出规则,类似函数的入参和返回值,便构成一个功能电路单元。单元套单元组成新单元,如此往复。“一生二,二生三,三生万物”。这…

盒马上市,即时零售最大“变量”

若盒马年内成功上市,等待完成下一轮融资的朴朴超市的处境恐将更加尴尬,另区域性中小商超或将迎来新一轮倒闭潮。 疫情过后,国内消费市场一直处于走弱态势。据商务大数据监测,今年端午假期,部分地区零售和餐饮数据远不及…

数据结构记录和leetcode刷题记录

背景 时间复杂度 算法的执行时间与输入值之间的关系。 参考:算法中七种常见的时间复杂度 - 掘金 参考视频:1. 算法的时间复杂度_哔哩哔哩_bilibili 空间复杂度 算法的存储空间与输入值之间的关系。 参考:2. 算法的空间复杂度_哔哩哔哩_bili…

【花雕】全国青少年机器人技术一级考试备考实操搭建手册1

目录 1、秋千 2、跷跷板 3、搅拌器 4、奇怪的钟 5、起重机 6、烤肉架 7、手摇风扇 8、履带车 9、直升机 10、后轮驱动车 秋千 (闽南语、广东话称千秋)是一种座椅,常见于儿童游乐场、杂技演员马戏团或门廊上放松的地方。 秋千的座位通常悬挂在…

蘑菇街被裁后,成功入职字节跳动的那一天,我哭了...

前言 先说一下个人情况,18 届应届生,通过校招进入到了蘑菇街,然后一待就待了差不多 2 年多的时间,可惜的是今年 4 月份受疫情影响遇到了大裁员,而他也是其中一员。好在早有预感,提前做了准备,之…

C++primer(第五版)第九章(顺序容器)

简单来说存入顺序和取出顺序一致的容器被称为顺序容器. 9.1顺序容器概述 vector和string将元素保存在连续的内存空间中,所以每次添加或删除元素都会非常耗时,但是通过下标计算内存地址来读取元素是非常快的. list和forward_list为链表,添加或删除元素的操作很快,但是不支持元…

QT——使用QListWidget、QListWidgetItem、QWidget实现自定义管理列表

作者:小 琛 欢迎转载,请标明出处 文章目录 需求场景思路描述Qt模块QListWidgetQListWidgetItem自定义QWidget配合QListWidget 例子:实现一个json文件管理窗口 需求场景 因工作需要,开发一个文件管理窗口,要让使用者可…

蓝牙通过串口获取电量!!!

问题:样机短时间出现电池没电情况(异常放电),经过检查,蓝牙在休眠是会有2.1V左右的电压,导致电池电量消耗过快。机器由于有语音功能,播放语音时需要很大电流,给机器装的是两节南孚电…

UE4/5数字人Metahuman与iClone的使用【数字人与动画】

iClone软件下载 iClone 8 是一款由Reallusion开发的3D动画软件,接下来就不多说了,首先进入官网,我们可以看到两个下载的东西,左边是下面这个软件,直接下载即可,右边的我们在后面下载: iClone插…