关于数字图像处理考试

我们学校这门科目是半学期就完结哦,同学们学习的时候要注意时间哦。
选择题不用管,到时候会有各种版本的复习资料的。
以下这些东西可能会是大题的重点:

我根据平时代码总结的,供参考

基本操作:

1.读图:imread(‘图片路径’)
2.显示图:imshow(图片)
3.开新窗口:figure()
4.rgb转灰度图:rgb2gray(图片)
5.灰度图合成彩色图:图片 = cat(3,灰度图1,灰度图2,灰度图3);

实验三(直方图与直方图均衡化):

1.获取灰度直方图:a_直方图 = imhist(图片)
2.对图像进行直方图均衡化:a_均衡化 = histeq(图片)
3.对图像进行指定直方图的规定化:a_规定化 = histeq(图片,规定的直方图)

实验四(最邻近插值和双线性插值):

1.matlab 自带的函数imresize(图片,放缩倍数或者缩放后的尺寸,插值方式)
2.imresize(图片,2,’nearest’) 这个是按最邻近插值方式,按2倍放大
3.Imresize(图片,2,’bilinear’) 这个是按双线性插值方式,按2倍放大
4.imresize(图片,[500,500],’nearest’) 这个是按最邻近插值方式,指定放大后尺寸为500x500
5.Imresize(图片,[500,500],’bilinear’) 这个是按双线性插值方式,指定放大后尺寸为500x500
6.双线性插值公式原理:
在这里插入图片描述

7.最邻近插值公式原理:求映射后的最邻近下标

实验五(平滑滤波器):

1.添加噪声:
j1 = imnoise(图片,‘salt’,0.02);%椒盐噪声
j2 = imnoise(图片,‘gaussian’,0,0.01); %高斯
j1 = imnoise(图片,‘poisson’); %泊松
j1 = imnoise(图片,‘speckle’,0.04); %乘法
2.使用均值滤波器 imfilter(图片,滤波核):
Moban = one(3,3)/9; //设置滤波核
均值滤波后图片 = imfilter(图片,Moban);

3.使用中值滤波器 medfilt2(图片,窗口大小):
中值滤波后图片 = medfilt2(图片,[3,3]); 这里[3,3]表示滤波器窗口大小为3x3
注意: medfilt2()函数只能用于处理灰度图即只有一个维度的图。

实验六(锐化):

可以使用imfilter()函数实现:
先设置算子:
A = [0,-1,0;
-1,4,-1;
0,-1,0];
边缘 = imfilter(原图,A);
锐化后图片 = 边缘+原图

实验七(傅里叶变换和频域处理):一般不考

实验八(彩色图像):

1.裁剪图像:imcrop(图片,区域);
如:
rect = [区域左上角横坐标,区域左上角纵坐标,区域右下角横坐标,区域右下角纵坐标]
imcrop(图片,rect);

2.按比例合成:
合成后图片 = 比例1x图片1+比例2x图片2

3.将图像从 RGB 颜色空间转换为灰度空间,分别用加权法、均值法和最大值法、以及 matlab 自带的函数 rgb2gray:

啊这个函数怎么要自己实现啊,那就没有太大的必要来记,毕竟填空题因人而异,我这里用的是遍历,I是原图,S是处理后的图,没太大看的必要。
在这里插入图片描述

4.亮度增强:
CMYK亮度增强:增强后图 = 增强系数* imcomplement(原图)

实验九(图像压缩):要记住书上怎么编码的

1,求熵值/平均信息量:
核心思想就是求出每个灰度的概率,再通过公式累加计算:
熵 =
G=256; %图像的灰度级
[height,width] = size(I); %获取输入值的高和宽
[count,x] = imhist(I,G);
p = count; %原始灰度直方图
I_size = height*width;
H_x = 0;
for i=1:256 %循环
p(i) = count(i)/I_size;
if p(i)~=0; %如果像素点的概率不为零
H_x=-p(i)*log2(p(i))+H_x; %求熵值的公式
end
end
H_x就是平均信号量,即熵
2,哈夫曼编码:代码没太大看的必要

原理大家应该都懂,代码大伙们都是抄的这个吗?(ω )
[M,N] = size(I);%将图像转为二维矩阵
I1 = I( : );%转为一维向量
k = 0:255;
dict = huffmandict(k,p); %根据灰度级k和概率数组P生成Huffman字典
enco = huffmanenco(I1,dict);
deco = huffmandeco(enco,dict); %哈夫曼解码
Ide = col2im(deco,[M,N],[M,N],‘distinct’); %把向量重新转换成图像块;

3,压缩率:
B=length(enco);
sumcode=length(deco);%编码后比特长度
CR=sumcode/B;%计算压缩率
disp([‘原始图像 Bit: ‘,num2str(B),’ bit’]);
disp([‘压缩图像 Bit: ‘,num2str(sumcode),’ bit’]);
disp(['压缩率: ',num2str(CR)]);

这些就都考考选择题吧,或者填空题算算。

实验十(形态学):

1.生成结构:
% 生成方形,圆形,菱形结构:
rectangle = strel(‘rectangle’,[5 10]); % 生成5x10大小的矩形
circle = strel(‘disk’,5); % 生成半径为5的圆形
square = strel(‘square’,5); % 生成5x5大小的正方形(也就是菱形)

2,腐蚀:imerode(图片,结构);
3,膨胀:imdilate(图片,结构);
4,开运算:imopen(图片,结构);
5,闭运算:imclose(图片,结构);

实验十一(图像分割):不怎么考

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

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

相关文章

【LeetCode】37. 解数独(困难)——代码随想录算法训练营Day30

题目链接:37. 解数独 题目描述 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&…

机器学习——有监督学习和无监督学习

有监督学习 简单来说,就是人教会计算机学会做一件事。 给算法一个数据集,其中数据集中包含了正确答案,根据这个数据集,可以对额外的数据希望得到一个正确判断(详见下面的例子) 回归问题 例如现在有一个…

linux系统非关系型数据库redis主从模式

redis主从模式 主从模式主从同步原理部署主从同步redis5.0.0之前的版本配置redis5.0.0之后的配置测试主从 主从模式 主从同步原理 主从 – 同步原理 从服务器会向主服务器发出SYNC指令,当主服务器接到此命令后,就会调用BGSAVE指令来创建一个子进程专门…

【深度学习:Bard】我们 AI 之旅的重要下一步

【深度学习:AI 之旅】我们 AI 之旅的重要下一步 Bard简介将 AI 的优势带入我们的日常产品中帮助开发人员利用 AI 进行创新大胆负责 人工智能是我们今天正在研究的最深刻的技术。无论是帮助医生更早地发现疾病,还是使人们能够用自己的语言获取信息&#x…

深度学习中的Droupout

1. 什么是Droupout Dropout的作用是防止过拟合。 Dropout在训练模型中是如何实现的呢?Dropout的做法是在训练过程中按一定比例(比例参数可设置)随机忽略或屏蔽一些神经元。这些神经元被随机“抛弃”,也就是说它们在正向传播过程…

【C/C++】整数及乘积的溢出问题

文章目录 一、为什么会溢出?二、怎样解决?三、看个例题四、补充:scanf和cin的区别 一、为什么会溢出? 整数乘积的溢出问题是指两个整数相乘得到的结果超过了所能表示的数据类型的范围。 在计算机中,整数的表示是有限…

移动应用开发Android 创建第一个Android项目

文章目录 一、创建第一个Android项目1.1 准备好Android Studio1.2 运行程序1.3 程序结构是什么app下的结构res - 子目录(所有图片、布局、字AndroidManifest.xml 有四大组件,程序添加权限声明 Project下的结构 二、开发android时,部分库下载异…

Spinnaker多云持续交付平台: 部署Minio存储服务

目录 一、实验 1.环境 2.K8S storage节点部署NFS 3.K8S 动态创建PV 4.K8S master节点部署HELM3 4.K8S master节点部署Minio存储服务(第一种方式安装) 5.Minio客户端安装MC命令 6.K8S master节点使用Docker 部署Minio存储服务(第二种方…

FPS游戏框架漫谈第二十天

今天我们聊的话题是: 《吃鸡中武器护甲逻辑》 当我们接到一个需求就是给我们游戏中的特定的模式指定的武器支持加护甲的功能 那么这个流程是什么样的呢? 第一步一般这个新增护甲的配置属性肯定是加载武器的Config json文件里面的呢,并且是支持…

Ubuntu 1804 And Above Coredump Settings

查看 coredump 是否开启 # 查询, 0 未开启, unlimited 开启 xiaoUbuntu:/var/core$ ulimit -c 0# 开启 xiaoUbuntu:/var/core$ ulimit -c unlimited查看 coredump 保存路径 默认情况下,Ubuntu 使用 apport 服务处理 coredump 文件&#xff…

华为配置车地通信快速切换实验

配置车地通信快速切换示例 组网图形 图1 配置车地通信快速切换业务示意图 组网需求配置思路配置注意事项操作步骤配置文件 组网需求 某轨交企业为了降低网络部署成本,提升服务质量,希望通过WLAN技术实现车地通信,使部署在地面网络的组播服务器…

【前端】实现Vue组件页面跳转的多种方式

目录 前言1. 内嵌2. 跳转新页面2.1 Demo12.2 Demo22.3 Demo3 3. 拓展 前言 通过某个Button让页面多种方式跳转 1. 内嵌 想要在Vue应用中内嵌一个外部网页&#xff0c;可以使用<iframe>标签 下面是一个示例&#xff1a; <template><div><!-- 在这里嵌入…

阿里云游戏服务器租用价格表,2024最新报价

阿里云游戏服务器租用价格表&#xff1a;4核16G服务器26元1个月、146元半年&#xff0c;游戏专业服务器8核32G配置90元一个月、271元3个月&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价&#xff1a; 阿里云游戏服务器租用价格表 阿…

ASP.NET Core 7 MVC 使用 Ajax 和控制器通信

ASP.NET Core MVC中&#xff0c;如果前端使用ajax访问后端&#xff0c;后端的代码可以直接使用控制器&#xff0c;控制器返回值建议JSON格式&#xff0c;利用POST参数做一些验证传值 前端代码&#xff1a; $.ajax({url: "Test",type: "POST",data: {"…

【C++修行之道】(引用、函数提高)

目录 一、引用 1.1引用的基本使用 1.2 引用注意事项 1.3 引用做函数参数 1.4 引用做函数返回值 1.5 引用的本质 1.6 常量引用 1.7引用和指针的区别 二、函数提高 2.1 函数默认参数 2.2函数占位参数 2.3 函数重载 2.4函数重载注意事项 一、引用 1.1引用的基本使用 …

【RT-DETR进阶实战】利用RT-DETR进行视频划定区域目标统计计数

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 Hello,各位读者,最近会给大家发一些进阶实战的讲解,如何利用RT-DETR现有的一些功能进行一些实战, 让我们不仅会改进RT-DETR,也能够利用RT-DETR去做一些简单的小工作,后面我也会将这些功能利用PyQt或者是…

备战蓝桥杯---搜索(完结篇)

再看一道不完全是搜索的题&#xff1a; 解法1&#xff1a;贪心并查集&#xff1a; 把冲突事件从大到小排&#xff0c;判断是否两个在同一集合&#xff0c;在的话就返回&#xff0c;不在的话就合并。 下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace …

LeetCode-第28题-找出字符串中第一个匹配项的下标

1.题目描述 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 2.样例描述 3.思路描述 可以让字符串 …

Apache Flink

前言 最近在学习室内融合定位服务架构&#xff0c;业务架构上&#xff0c;涵盖了数据采集、处理、状态管理、实时计算和告警等多个方面&#xff0c;但有些问题&#xff1a;这套系统中包含了大量的有状态计算&#xff0c;目前是通过自设计内存对象进行管理&#xff0c;并利用Re…

迎新年年终总结

迎新年年终总结 1、除夕迎新年登高有感 1、除夕迎新年登高有感 除旧岁&#xff0c;迎新年。凭栏立&#xff0c;意阑珊。 天空阔&#xff0c;世道艰。唯自强&#xff0c;可彼岸。 于2024年2月9日 10:51。