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

news2024/11/24 16:00:39

目录

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.coloradmin.cn/o/1040839.html

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

相关文章

C语言入门Day_25 函数与指针小结

目录 前言: 1.函数 2.指针 3.易错点 4.思维导图 前言: 函数就像一个“有魔法的加工盒”,你从入口丢一些原材料进去,它就能加工出一个成品。不同的函数能加工出不同的成品。 入口丢进去的瓶子,水和标签就是输入&a…

win使用git(保姆级教程)

序言 上学期间用的git并不多,但是从研三实习以及后面工作来看,git是一项必备技能,所以在此来学习一下。 下载git安装包 打开网站,根据需求来下载;一般按照如下方式进行下载: 然后安装的时候记得按下图勾…

NebulaGraph实战:3-信息抽取构建知识图谱

自动信息抽取发展了几十年,虽然模型很多,但是泛化能力很难用满意来形容,直到LLM的诞生。虽然最终信息抽取质量部分还是需要专家审核,但是已经极大的提高了信息抽取的效率。因为传统方法需要大量时间来完成数据清洗、标注和训练&am…

32.栈的应用补充-表达式求值

目录 一. 前缀表达式与后缀表达式 二. 中缀表达式转后缀表达式的手算方法 三. 后缀表达式的手算方法 四. 后缀表达式的机算方法 五. 中缀表达式转前缀表达式的手算方法 六. 前缀表达式的机算方法 七. 中缀表达式转后缀表达式的机算方法 八. 中缀表达式的机算 一. 前缀表…

ElementUI首页导航和左侧菜单静态页面的实现,以及Mockjs和总线的介绍

目录 前言 一. Mock.js 1.1 什么是Mock.js 1.2 Mockjs的安装与配置 1.2.1 安装Mock.js 1.2.2 引入Mock.js 1.3 Mockjs的使用 1.3.1 定义数据测试文件 1.3.2 mock拦截ajax请求 二. 首页导航以及左侧菜单的搭建 2.1 什么是总线 2.2 创建三个vue组件 首页AppMain.vue组…

Learn Prompt- Midjourney Prompt:Prompt 提示语

基础结构​ 一个基本的提示可以简单到一个单词、短语或表情符号。非常短的提示将在很大程度上依赖于 Midjourney 的默认样式。 完整 prompt:可以包括一个或多个图像链接、多个文本短语或单词,以及一个或多个后缀参数 Image Prompts: 可以将图像 URL 添加…

Vue中前端导出word文件

很多时候在工作中会碰到完全由前端导出word文件的需求,因此特地记录一下比较常用的几种方式。 一、提供一个word模板 该方法提供一个word模板文件,数据通过参数替换的方式传入word文件中,灵活性较差,适用于简单的文件导出。需要…

Postgresql源码(113)表达式JIT计算简单分析

相关 《Postgresql源码(85)查询执行——表达式解析器分析(select 11如何执行)》 《Postgresql源码(113)表达式JIT计算简单分析》 1 普通表达式计算 普通表达式计算发生在优化器preprocess_expression中&am…

uni-app 使用 scss 实现推荐标签区域显示效果

效果图 <view class"tag-box"><view class"tag-tip"><view>店家</view><view>推荐</view></view> </view> 方法一 只需修改 $tagFontSize(字体大小) 即可 /* 推荐标签区域 */ .tag-box {$tagFontSize:…

uni-app:实现元素中实现竖直居中

效果展示 前&#xff1a; 后&#xff1a; 未实现前代码 <template><view class"container"><view class"centered-element">我是要被居中的元素</view></view> </template><script>export default {data() {r…

算法与数据结构-堆

文章目录 什么是堆如何实现一个堆&#xff1f;如何基于堆实现排序&#xff1f;1. 建堆2. 排序 什么是堆 堆是一种特殊的树&#xff0c;特殊点有二&#xff0c;如下&#xff1a; 堆是一个完全二叉树&#xff1b;堆中每一个节点的值都必须大于等于&#xff08;或小于等于&#…

【Vue】Mock.js介绍和使用与首页导航栏左侧菜单搭建

目录 一、Mock.js 1.1 mockjs介绍 1.2 mock.js安装与配置 1.2.1 安装mock.js 1.2.2 引入mock.js 1.3 mock.js的使用 1.3.1 准备模拟数据 1.3.2 定义拦截路由 1.3.3 测试 二、首页导航栏左侧菜单搭建 2.1 自定义界面组件 (完整代码) 2.2 配置路由 2.3 组件显示折叠和…

uniapp ui安装

安装 ui uni-app官网 (dcloud.net.cn) 安装 pages.js配置 使用 <template><view class"bg"><div class"title"><uni-data-selectv-model"value":localdata"range"change"change">asa</uni-da…

GiliSoft USB Lock v10.5.0 电脑USB设备管控软件

网盘下载 软件功能特性 禁止USB / SD驱动器 禁用从USB / SD磁盘读取&#xff0c;禁用写入USB / SD磁盘&#xff0c;阻止非系统分区。它不允许任何类型的USB / SD驱动器访问您的计算机&#xff0c;除非您授权它或它已在可信设备白名单。 CD锁&#xff0c;块媒体和蓝光光盘 禁用…

代码阅读分析神器-Scitools Understand

这里写目录标题 前言概要功能介绍1.代码统计2.图形化分析3.代码检查 使用方法下载及使用 前言 作为一名程序员&#xff0c;阅读代码是一个必须要拥有的能力&#xff0c;但无奈很多代码逻辑嵌套非常多&#xff0c;看起来非常吃力&#xff0c;看了那段逻辑就忘记了刚才的逻辑&am…

Spring实例化源码解析之ComponentScanAnnotationParser(四)

上一章我们分析了ConfigurationClassParser&#xff0c;配置类的解析源码分析。在ComponentScans和ComponentScan注解修饰的候选配置类的解析过程中&#xff0c;我们需要深入的了解一下ComponentScanAnnotationParser的parse执行流程&#xff0c;SpringBoot启动类为什么这么写&…

01 MIT线性代数-方程组的几何解释

一, 线性方程的几何图像 The geometry of linear equations 线性代数的基本问题就是解n元一次方程组 eg&#xff1a;二元一次方程组 矩阵形式: 系数矩阵(coefficient matrix): 未知数向量: 线性方程组简记为Axb 二, 行图像 Row Picture 行图像遵从解析几何的描述&#xff0…

李宏毅hw-10 ——adversarial attack

一、查漏补缺&#xff1a; 1.关于glob.glob的用法&#xff0c;返回一个文件路径的 列表&#xff1a; 当然&#xff0c;再套用1个sort&#xff0c;就是将所有的文件路径按照字母进行排序了 2.relpath relative_path返回相对于基准路径的相对路径的函数 二、代码剖析&#xff…

Pytorch之AlexNet花朵分类

&#x1f482; 个人主页:风间琉璃&#x1f91f; 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 目录 一、AlexNet 1.卷积模块 2.全连接模块 3.AlexNet创新点 1.更深的神经…

深度学习技巧应用28-强化学习的原理介绍与运用技巧实践

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用28-强化学习的原理介绍与运用技巧实践, 强化学习是一种机器学习的子领域,它使得一个智能体在与环境的交互中学习如何行动以最大化某种数值奖励信号。强化学习模型的关键特性是它的试错搜索和延迟奖励。 一、强化学习…