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

news2024/11/24 23:47:20

目录

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 1
   1 1 1
   1 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 saturn2

subplot(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');//有抖动
%%
clear

subplot(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.coloradmin.cn/o/1044008.html

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

相关文章

前后端分离的计算机毕设之基于springboot+vue的课程设计选题管理系统(内含源码+文档+教程)

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做&am…

vue_Delete `␍`eslint(prettier/prettier)

Delete ␍eslint(prettier/prettier) 错误的解决方案 问题背景 在Windows笔记本上新拉完代码,在执行pre-commit时,出现如下错误: Delete ␍eslint(prettier/prettier)问题根源 罪魁祸首是git的一个配置属性:core.autocrlf 由于…

Kafka数据可靠性保证

1.生产者发送数据到Topic partition的可靠性保证 为保证producer发送的数据,能可靠的发送到指定的topic,topic的每个partition收到producer发送的数据后,都需要向producer发送ack(acknowledgement确认收到)&#xff0c…

构建卓越语言模型应用的利器:LangChain | 开源日报 No.39

langchain-ai/langchain Stars: 61.3k License: MIT LangChain 是一个用于通过组合性构建 LLMs 应用程序的库。 LLMs 和 Prompts:包括 prompt 管理、prompt 优化、所有 LLM 的通用接口以及与 LLMs 一起使用的常见工具。Chains:超越单个 LLM 调用&…

nodejs+vue大学食堂订餐系统elementui

可以查看会员信息,录入新的会员信息,对会员的信息进行管理。 网站管理模块对整个网站中的信息进行管理,可以查看会员留在留言栏中的信息,设置网站中的参数等。用户管理模块主要实现用户添加、用户修改、用户删除等功能。 近年来&…

C++与数据结构面经(重中之重)

多线程 互斥锁 原子变量 自旋锁 C11新特性 智能指针 首先智能指针是一个类,超过类的作用域会进行析构,所以不用担心内存泄漏。Unique_ptr(独占指针):规定一个智能指针独占一块内存资源。当两个智能指针同时指向一块内存,编译报错。 不允…

华南理工大学电子与信息学院23年预推免复试面试经验贴

运气较好,复试分数90.24,电科学硕分数线84、信通83、专硕电子与信息74. 面试流程: 1:5min ppt的介绍。其中前2min用英语简要介绍基本信息,后3min可用英语也可用中文 介绍具体项目信息如大创、科研、竞赛等&#xff08…

ThrowableError in Arr.php line 380

欢迎关注我的公众号:夜说猫,每周新闻点评~ 前言 今天重装了宝塔之后重装php,遇到了一个问题,如下 ThrowableError in Arr.php line 380 Parse error: syntax error, unexpected 提示我语法错误。 报错原因 主要是thinkphp5.1…

【新版】系统架构设计师 - 软件架构的演化与维护

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 软件架构的演化与维护考点摘要软件架构演化和定义面向对象软件架构演化对象演化消息演化复合片段演化约束演化 软件架构演化方式静态演化动态演化 软件架构演化原则软件架构演化评估方法大型网站架…

JVM对象创建与内存分配机制

对象的创建 对象创建的主要流程: ​ 1.类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应…

如何在Python中捕获异常

1. 写在前面 本文主要介绍 Python 捕获异常的各种技术。首先,回顾 Python 的异常处理机制,然后深入研究并学习如何识别捕获的异常内容,以及忽略异常。 公众号: 滑翔的纸飞机 2. Python 异常处理机制 Python 代码在运行的过程中&…

5-1.(OOP)初步分析MCV架构模式

组成:模型(model)、视图(view)、控制器(controller) view:界面、显示数据 model:数据管理、负责在数据库中存取数据以及数据合法性验证 controller:负责转…

uni-app:顶部标题栏的部分相关设置(标题更改, 加载效果)

一、标题更改 效果 方法一:在pages.json中进行修改 {"path": "pages/index/index","style": {"navigationBarTitleText": "自定义标题"} }, 方法二:在页面直接进行修改 onLoad() {// 设置页面的标…

Spring Boot 如何配置 CORS 支持

Spring Boot 如何配置 CORS 支持 跨域资源共享(CORS)是一种重要的网络安全策略,用于限制浏览器在不同域之间的HTTP请求。Spring Boot提供了简单而强大的方法来配置CORS支持,以确保您的应用程序能够与其他域的资源进行安全交互。本…

某高校的毕设

最近通过某个平台接的单子,最后Kali做的测试没有公开可以私聊给教程。 下面是规划与配置 1.vlan方面:推荐一个vlan下的所有主机为一个子网网段 连接电脑和http客户端的接口配置为access接口 交换机与交换机或路由器连接的接口配置为trunk接口---也可以…

电商项目高级篇-02 elasticsearch-下

电商项目高级篇-02 elasticsearch-下 4.2、QueryDSL返回指定字段 4.2、QueryDSL 返回指定字段 返回单个字段 GET bank/_search {"query": {"match_all": {}}, "sort": [{"balance": {"order": "desc"}}], &quo…

IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!...

最近我们得知,Apache IoTDB 多项性能表现位居 benchANT 时序数据库排行榜(Time Series: DevOps)性能排行第一名!(榜单地址:https://benchANT.com/ranking/database-ranking) benchANT 位于德国&…

计算机竞赛 深度学习卫星遥感图像检测与识别 -opencv python 目标检测

文章目录 0 前言1 课题背景2 实现效果3 Yolov5算法4 数据处理和训练5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **深度学习卫星遥感图像检测与识别 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐…

【Vue】动态树与数据表格分页查询实现

目录 一、动态树 1.1 准备工作 1.1.1 准备数据库 1.1.2 准备好后台服务接口,Moudel查询,和Book查询(支持分页) 1.1.3 修改mock.js测试环境 1.1.4 配置请求路径 1.2 构建导航菜单 1.2.1 通过接口获取数据 1.2.2 通过后台获…

【LFU缓存机制】+双哈希表解法+排序解法

文章目录 Tag题目来源题目解读解题思路方法一:排序解法方法二:双哈希表 知识回顾双向链表的操作 写在最后 Tag 【LFU缓存】【哈希表】【设计数据结构】【2023-09-25】 题目来源 460. LFU 缓存 题目解读 为 LFU 缓存算法设计并实现数据结构。 LRU 缓存…