图像处理与计算机视觉--第四章-图像滤波与增强-第二部分

目录

1.图像噪声化处理与卷积平滑

2.图像傅里叶快速变换处理

3.图像腐蚀和膨胀处理

4 图像灰度调整处理

5.图像抖动处理算法

学习计算机视觉方向的几条经验:
1.学习计算机视觉一定不能操之过急,不然往往事倍功半!
2.静下心来,理解每一个函数/算法的过程和精髓,这个知识才真正是你的!
3.计算机视觉的参数非常多,你必须理解透并且学会运用,不然你只能做个调参侠!
4.做一件事就必须要从中学到什么,否则就算是再大的荣誉只是混来的,不真正属于你!
以上经验总结来自Neu.Ise.JiaT.Prof,也是Neu做cv的数一数二的教授了,希望能够带着这些经验继续前进,在cv的学习中有所感悟和收获!
*******************************************************************************************
END IN 2023/09/27/01:40:又是一个小通宵,明天还有早八,真的要完全理解这些函数很难,每写一段都需要30分钟左右的
学习理解过程,以及我的matlab水平不如python那般熟练,有的地方绘图还需要不断的查找资料和
别人的博客,然后不断的去修改代码,matlab的绘图确实不熟练,我需要花费2-2.5个小时才能勉
强完成这样一篇总结。确实很累,但是如果感觉累的话是幸运的,因为说明你在进步,因为上坡的路都是困难的。
*******************************************************************************************

1.图像噪声化处理与卷积平滑

图像噪声化处理与卷积平滑:
图片首先经过imnoise()函数的处理,增加噪声参数,变得模糊混乱,然后我们在通过卷积的方式让图像
整体变得平滑并且消除模糊的程度。
噪声函数:imnoise(I,'gaussian',均值u,标准差)
卷积函数:conv2(I,h) %I表示图像 h表示卷积核
%%
%%image line filter
clear
I = imread('moon.tif')
subplot(131);
imshow(I)
%imnoise噪声使得图像变得更模糊嘈杂
I = imnoise(I,'gaussian',0,0.02);%添加均值为0,方差为0.02的噪声
subplot(132)
imshow(I)%绘制第二张子图
subplot(133)
h=[1 1 11 1 11 1 1];
h = h/9;
%conv2函数来对添加了噪声的图像 I 进行线性卷积操作,
%这个操作实际上是一个平滑滤波操作,它通过计算每个像素周围3x3邻域的加权平均值来减小图像中的高频噪声,
%从而使图像变得更加平滑。
J = conv2(I,h);
imshow(J,[])
saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','image line filter','.png'])

 

2.图像傅里叶快速变换处理

图像傅里叶快速变换处理:
首先加载图像,对于图像有总体的理解.
其次对其执行FFT变换,fft2(I)函数将图像从时间域转向频域,并且画出可视化图片.
再研究FFT结果的移位版本fftshift(fft2(I)),分析傅里叶变换的特点.
最后给出频谱图像的对数幅度。这有助于分析图像中的频域信息,对于信息能够更好的理解.
%%
% fft2
clear
load imdemos saturn2subplot(221);
I = imread('moon.tif')
imshow(I)
title('Subplot 1:原图渲染')subplot(222);
b = fft2(I)%二维快速傅里叶变换
imshow(b)
title('Subplot 2:二维快速傅里叶变换')subplot(223);
b=fftshift(fft2(I));%这行代码首先对FFT结果进行了移位操作,将低频分量移到图像中心。然后,它再次计算FFT,得到移位后的频谱图像 b。
imshow(b)
title('Subplot 3:傅里叶变换移位')subplot(224);
imshow(log(abs(b)),[])
title('Subplot 4:频谱对数幅度图')
colormap(jet(64))
colorbar
saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','fft','.png'])

3.图像腐蚀和膨胀处理

图像的腐蚀和膨胀处理:
腐蚀和膨胀是针对白色部分(高亮部分)而言的。
膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;
腐蚀是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。
膨胀用来处理缺陷问题;腐蚀用来处理毛刺问题。膨胀问题:就是求局部最大值的操作,从图像直观看来,就是将图像光亮部分放大,黑暗部分缩小。
腐蚀问题:腐蚀操作和膨胀操作相反,也就是将毛刺消除,腐蚀跟膨胀操作的过程类似,唯一不同的是以最小值(偏黑)替换锚点重叠下图像的像素值。
%%
% dilate&erode
%图像腐蚀与膨胀
clear 
close all
subplot(131);
I = imread('text.png')
imshow(I)SE = ones(6,2)
BW=imdilate(I,SE)
title('Subplot 1:原图')subplot(132);
imshow(BW)
title('Subplot 2:图像腐蚀处理')subplot(133);
BW2=imerode(I,SE)
imshow(BW2)
title('Subplot 3:图像膨胀处理')saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','dilate_erode','.png'])

4 图像灰度调整处理

图像灰度调整处理:
1.通过函数imadjust()进行图像灰度的调整.
2.其中会用到一个J=imadjust( I,[low_in;high_in],[low_out;high_out]) 就是调整之后的灰度图像.
3.imadjust([x1,x2])表示当值大于x2*255时,灰度设置为1,当值小于x1*255时,灰度为0.
%%
%enhancement imadjust
clear
I = imread('tire.tif')
J=imadjust(I,[0.3,0.7],[])%
subplot(2,2,1)
imshow(I)
title('Subplot 2:原图')subplot(2,2,2)
imshow(J)
title('Subplot 2:灰度调整后图')subplot(2,2,3)
imhist(I)
title('Subplot 3:原图灰度图')subplot(2,2,4)
imhist(J)
title('Subplot 4:调整后灰度图')saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','enhancement imadjust','.png'])

5.图像抖动处理算法

图像抖动处理算法:
1.对于可用颜色较少的系统,可以以牺牲分辨率为代价,通过颜色值的抖动来增加可用颜色数量。
2.没有使用抖动方法来进行颜色量化。这可能会导致颜色在索引图像中的分布更为均匀,但在某
些情况下可能会损失一些细节。
3.对比无抖动方法,抖动方法帮助尽量保留原始图像的颜色细节。
4.[X_no_dither,map]= rgb2ind(rgb,8,'nodither');//无抖动
5.[X_dither,map]=rgb2ind(rgb,8,'dither');//有抖动
%%
clearsubplot(131);
rgb=imread('onion.png'); 
imshow(rgb);
title('Subplot 1:原图')subplot(132);
[X_no_dither,map]= rgb2ind(rgb,8,'nodither');
imshow(X_no_dither,map);
title('Subplot 2:=无抖动效果图')subplot(133);
[X_dither,map]=rgb2ind(rgb,8,'dither');
imshow(X_dither,map);
title('Subplot 3:有抖动效果图')saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','imgae_dither','.png'])

 

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

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

相关文章

【Linux进行时】环境变量and进程优先级

1.环境变量 ❓首先一个问题:我写的代码(这个代码很简单,不用管)编译之后运行的时候为什么要带./ ? 或者说我怎么才可以让我不用带./ ? 💡.代表当前文件下,/是文件分隔符,…

COTS即Commercial Off-The-Shelf 翻译为“商用现成品或技术”或者“商用货架产品”

COTS 使用“不再做修理或改进”的模式出售的商务产品 COTS即Commercial Off-The-Shelf 翻译为“商用现成品或技术”或者“商用货架产品”,指可以采购到的具有开放式标准定义的接口的软件或硬件产品,可以节省成本和时间。 中文名 商用现成品或技术 外文…

基于VR元宇宙技术搭建林业生态模拟仿真教学系统

随着科技的飞速发展,教学方式也正在经历着巨大的变革。林业经济学元宇宙虚拟教学系统作为一种新兴的教学方式,为学生和教师提供了一个全新的、沉浸式的学习和教学环境。 森林管理和监测 元宇宙技术可以用于森林管理和监测。通过无人机、传感器和虚拟现实…

MASA MAUI iOS 文件下载与断点续传

文章目录 背景介绍方案及代码1、新建MAUI项目2、建立NSUrlSession会话连接3、使用NSUrlSessionDownloadTask 创建下载任务4、DidWriteData 监听下载5、DidFinishDownloading 完成下载6、CancelDownload (取消/暂停)下载7、ResumeDownload 恢复下载8、杀死进程-恢复下载 效果图总…

MySQL基础篇-约束

目录 1.约束概述 2.分类 3.测试user表的约束情况 主键约束 非空约束及唯一约束 检查约束 默认约束 4.外键约束 外键约束的语法 外键约束的删除/更新行为 小结 1.约束概述 MySQL约束(Constraints)是用于确保表中数据完整性和一致性的规则。它们定…

多线程(虚拟地址空间)

代码展示线程 既然我们提到了,线程隶属于进程,是进程的一个执行分支 真的是这样吗? 我们还需要用代码来验证 初步思路是创建三个线程,其中main函数里面的为主线程 不断循环,并且打印相应的pid 假如它们属于不同的进程…

四,立方体贴图

Pbr的间接光用到立方体贴图,所以,先用shader进行立方体贴图。 立方体贴图很简单,就是用方向向量(不一定是单位向量)采样cubeMap的颜色。 也就是在片元着色器中传递。 "float x outPos.r;\n" "float y…

位运算符与高级操作

位运算符与高级操作 运算符 高级操作 左移实现乘法 左移n位等价于乘以2的n次方 int x; x 2; x x << 2; x x << 3;使用左移实现乘法运算仅限于乘以2的倍数 是不是只要左移就能够实现乘以2的倍数呢? char x 120; x x << 1;右移实现除法 右移n位等价于除…

查看基站后台信息

查看基站后台信息 电脑配置固定ip: 192.168.1.99: 打开“网络和共享中心”&#xff0c;选择更改适配器设置&#xff1a; 右键“本地连接”&#xff0c;选择属性 基站网线直连电脑网口 Telnet 登录基站 打开dos窗口 windows键R”&#xff0c;输入cmd&#xff0c;点确定&…

MySQL的执行流程

在聊mysql的执行流程之前&#xff0c;咱们要先聊聊mysql的逻辑架构。 逻辑架构 可以将上图简化为下图 连接层 客服端访问mysql服务器前&#xff0c;要先和mysq建立tcp连接。经过3次握手建立连接成功后&#xff0c;mysql服务器对tcp传输过来的账号密码进行身份认证&#x…

【大数据】Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读

本系列包含&#xff1a; Doris 构建实时数仓落地方案详解&#xff08;一&#xff09;&#xff1a;实时数据仓库概述Doris 构建实时数仓落地方案详解&#xff08;二&#xff09;&#xff1a;Doris 核心功能解读Doris 构建实时数仓落地方案详解&#xff08;三&#xff09;&#…

Selenium —— Web自动化多浏览器处理!

一、多浏览器测试介绍 1.1、多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何浏览器上正常的工作&#xff0c;这样能吸引更多的用户来使用 1.2、多浏览器测试概述 是跨不同浏览器组合验证网站或 web 应用程序功能的过程是兼容性测试的一个分支…

git学习使用

git使用 1、cmd #查看版本 git version2、初识 Git GUI: Git提供的图形界面工具 Git Bash: Git提供的命令行工具 1.打开Git Bash2.设置自己的用户名和邮箱地址git config --global user.name "xxx"git config --global user.email "123456789163.com"查…

大数据Flink(八十七):DML:Joins之Regular Join

文章目录 DML:Joins之Regular Join DML:Joins之Regular Join Flink 也支持了非常多的数据 Join 方式,主要包括以下三种: 动态表(流)与动态表(流)的 Join动态表(流)与外部维表(比如 Redis)的 Join动态表字段的列转行(一种特殊的 Join)细分 Flink SQL 支持的

【数据结构与算法】链表的实现以及相关算法

目录 单选链表的基本实现 有序列表的合并&#xff08;双指针法&#xff09; 链表的反转 链表实现两数之和 判定链表是否有环 双链表的实现 public class DLinkedList<E> {private Node<E> first;private Node<E> last;int size;/*** 头插法* param i…

Prettier - Code formatter格式化规则文件

文章目录 前言安装使用 前言 先前公司在规范代码时,由于个人业务繁忙跟技术总监是后端出身用的IDEA不熟悉vsCode;以及大多数时都自己一个人负责一个项目,当时并不看重这些;最近在整理vue3tsvite的脚手架模板(平时工作用的react),开始整理格式化代码,方便之后 vue 和 react 中应…

Android Shape设置背景

设置背景时&#xff0c;经常这样 android:background“drawable/xxx” 。如果是纯色图片&#xff0c;可以考虑用 shape 替代。 shape 相比图片&#xff0c;减少资源占用&#xff0c;缩减APK体积。 开始使用。 <?xml version"1.0" encoding"utf-8"?…

高效查询大量快递信息,轻松掌握技巧

在如今快节奏的生活中&#xff0c;快递已经成为我们日常不可或缺的一部分。然而&#xff0c;对于一些忙碌的人来说&#xff0c;单个查询每一个快递单号可能会浪费太多时间。因此&#xff0c;我们需要一款可以帮助我们批量查询快递的软件。 在市场上&#xff0c;有很多款专门用于…

【2023年11月第四版教材】第15章《风险管理》(第四部分)

第15章《风险管理》&#xff08;第四部分&#xff09; 8 过程4-实施定量风险分析8.1 实施定量风险分析★★★8.2 数据分析★★★8.3 定量成本风险分析S曲线示例8.4 决策树示例8.5 龙卷风图示例8.6 项目文件&#xff08;更新&#xff09;★★★ 9 过程5-规划风险应对9.1 规划风险…

【2023款奔驰改款E260 L运动型:豪华与性能的完美结合】

在汽车市场中&#xff0c;奔驰一直以其卓越的品质和卓越的性能赢得了消费者的喜爱。而2023款奔驰改款E260 L运动型&#xff0c;更是将豪华与性能完美结合&#xff0c;让人无法抗拒。首先&#xff0c;让我们来看一下这款车的外观设计。新款E260 L运动型的前脸设计更加犀利&#…