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

news/2024/7/21 4:25:36 标签: 计算机视觉, 图像处理, 人工智能

目录

1.灰度图亮度调整

2.图像模板匹配

3.图像裁剪处理

4.图像旋转处理

5.图像邻域与数据块处理


学习计算机视觉方向的几条经验:
1.学习计算机视觉一定不能操之过急,不然往往事倍功半!
2.静下心来,理解每一个函数/算法的过程和精髓,这个知识才真正是你的!
3.计算机视觉的参数非常多,你必须理解透并且学会运用,不然你只能做个调参侠!
4.做一件事就必须要从中学到什么,否则就算是再大的荣誉只是混来的,不真正属于你!
以上经验总结来自Neu.Ise.JiaT.Prof,也是Neu做cv的数一数二的教授了,希望能够带着这些经验继续前进,在cv的学习中有所感悟和收获!

1.灰度图亮度调整

灰度图介绍:
1.灰度图,又称灰阶图。把白色和黑色之间按照对数关系分为若干等级,称为灰度。
2.灰度一般是2的整数次幂并且每个像素采用8比特来表示,灰度可以被量化为256及。
3.改变像素的亮度值是增强图像的常用方法,采用某种函数变换进行增强即可,一般用的比较多的是指数函数。
4.以下我们将展示采用直方图进行增强的效果,对应的函数是histeq()函数。
histeq()函数:
J = histeq(I) 变换灰度图像 I,以使输出灰度图像J的直方图具有64个bin且大致平坦。
%%灰度图亮度调整
clear all
I = imread('tire.tif')
J = histeq(I)
figure
subplot(2,2,1)
imshow(I)
subplot(2,2,2)
imshow(J)
subplot(2,2,3)
imhist(I)
subplot(2,2,4)
imhist(J)
saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','histeq','.png'])

2.图像模板匹配

图像模板匹配
1.模板匹配就是在一个图像中识别出与模板相似的区域
因此我们设定输入输出如下所示:
输入:一张原始图像和模板图像
输出:在原始图像中找到与模板图像相似的区域
2.算法的原理也很简单,就是我们拿着模板和一个给定的标准,寻找最贴近标准的图像即可。
对于计算机来说,逐次比对的过程可以是,设置一个与模板相同大小的window, 按照一定的步长,
步长可以自己设定,向左向右依次滑动,会得到不同的子区域,然后逐次比对模板和子区域,找出
最好最符合的就是最为相似的。
%%
%%template matching
%本题的标准就定在0.9
clear
a = imread('a.tif')
[ma na]=size(a)%获取大小
I = imread('text.png')
figure
imshow(I)
[mi,ni]=size(I)%获取大小
afft=fft2(a)%二维傅里叶变换
Ifft=fft2(I)%二维傅里叶变换

%计算用于 FFT 的输出图像大小,这是两个图像大小之和减去1。
M = ma+mi-1
N = na+ni-1

%拓展到相同的维度
afft(M,N)=0
Ifft(M,N)=0
filtered=ifft2(afft.*Ifft)%对扩展后的频域数据进行逆傅里叶变换
filtered=filtered(1:mi,1:ni)%提取相同的大小区域,方便后续匹配
filtered=filtered/max(max(filtered,[],1))%归一化操作
%将匹配结果中大于0.9的像素设置为1,小于等于0.9的像素设置为0。
result=filtered>0.9
%绘制可视化图
figure
subplot(2,2,1)%模板
imshow(a)
subplot(2,2,2)%匹配图
imshow(I)
subplot(2,2,3)
imshow(filtered)%归一化图全部是0-1
subplot(2,2,4)
imshow(result)%结果图
saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','template_matching','.png'])

3.图像裁剪处理

图像的裁剪处理
1.图像的裁剪处理用到imresize()函数.
2.B = imresize(A,scale) 返回图像 B,它是将A的长宽大小缩放图像
scale倍之后的图像。输入图像 A 可以是灰度图像、RGB 图像、二值图像或分类图像。
%%
%图像裁剪
clear
figure
I = imread('ci.bmp')
J = imresize(I,0.5);%边缩小0.5倍
figure
imshow(I)
figure
imshow(J)

4.图像旋转处理


%%
和图像的裁剪差不多,我们也就不细讲了
%%
%图像旋转
clear
I = imread('ci.bmp')
I1 = imrotate(I,45);
% I1 = imresize(I,2,'nearest');
figure
subplot(1,2,1)
imshow(I)
subplot(1,2,2)
imshow(I1,[])
saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','iamge_imrptate','.png'])

5.图像邻域与数据块处理

5.图像邻域与数据块处理:
1.某些图像处理运算需要分段处理图像,而不是一次处理整个图像。
2.滑动邻域运算通过对每个像素邻域应用算法,以一次一个像素的方式处理图像。
3.在另一种数据块处理中,图像被分成大小相等且不重叠的数据块,并对每个不同数据块应用算法。
然后,对邻域和数据块进行重组以形成输出图像。
%%
%5.图像邻域与数据块处理
clear
I = imread('tire.tif')
f= inline('uint8(round(std2(x)*ones(size(x))))')
I2 = blkproc(I,[8,8],f)%邻域处理
%绘图可视化
figure
subplot(1,2,1)
imshow(I)
subplot(1,2,2)
imshow(I2,[])
saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','image block operation','.png'])


http://www.niftyadmin.cn/n/5057166.html

相关文章

基于SSM+Vue的医院住院综合服务管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

ShardingSphere|shardingJDBC - 在使用数据分片功能情况下无法配置读写分离

问题场景: 最近在学习ShardingSphere,跟着教程一步步做shardingJDBC,但是想在开启数据分片的时候还能使用读写分离,一直失败,开始是一直能读写分离,但是分偏见规则感觉不生效,一直好像是走不进去…

Java 基于 SpringBoot 的在线学习平台

1 简介 基于SpringBoot的Java学习平台,通过这个系统能够满足学习信息的管理及学生和教师的学习管理功能。系统的主要功能包括首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信息…

使用SPY++查看窗口信息去排查客户端UI软件问题

目录 1、使用SPY查看窗口的信息 2、使用SPY查看某些软件UI窗口用什么UI组件实现的 2.1、查看海康视频监控客户端安装包程序 2.2、查看华为协同办公软件WeLink 2.3、查看字节协同办公软件飞书 2.4、查看最新版本的Chrome浏览器 2.5、查看小鱼易连视频会议客户端软件 2.6…

66种智能优化算法跑23个基准测试函数

目录 1、66种智能优化算法 2 、23个标准测试函数 3 、多种智能优化算法在CEC2005上对比 3.1、 多个算法对比 3.2 单个算法运行 1、66种智能优化算法 将66种智能优化算法在23个经典测试函数上进行对比,这些智能优化算法包括一些高性能算法,如…

OS 模拟进程状态转换

下面的这个博主写的很好 但是他给的代码print部分和语言风格python三识别不了 这个特别感谢辰同学帮我调好了代码 我放在主页上了 估计过两天就可以通过了 《操作系统导论》实验一:模拟进程状态转换_process-run.py-CSDN博客 这个补充一下他没有的:OS…

【广州华锐互动】鱼类授精繁殖VR虚拟仿真实训系统

随着科技的不断发展,虚拟现实技术在各个领域的应用越来越广泛。在养殖业中,VR技术可以帮助养殖户进行家鱼授精实操演练,提高养殖效率和繁殖成功率。本文将介绍利用VR开展家鱼授精实操演练的方法和应用。 首先,我们需要了解家鱼授精…

使用领域引导图卷积神经网络GCNN增强基于脑电图EEG的神经疾病诊断完整代码

一种基于图卷积神经网络(GCNN)的新方法,用于改进使用头皮脑电图(EEG)进行神经系统疾病诊断。尽管脑电图是神经系统疾病诊断中主要使用的检测方法之一,但基于EEG的专家视觉诊断的敏感性仍然只有约50&#xf…