Matlab学习4-图像处理之图像加法、图像减法、加噪

2023-10-27

图像处理,图像加法(例图像的叠加,调亮色等),图像减法(例捕捉运动图像的轨迹)
环境matlab2020

使用imadd(加)、imsubtract(减)、imresize(改)、imnoise(图像加噪)

matlab函数

imadd(X,Y):
将两个图像相加或在图像中添加常量;
Z=imadd(X,Y)将数组X中的每个元素与数组Y中的对应元素相加,并在输出数组Z的对应元素中返回和。
imsubtract(X,Y)
从一个图像中减去另一个图像或从图像中减去常量;
Z=imsubtract(X,Y)从数组X中的每个元素中减去数组Y中的对应元素,并在输出数组Z的对应元素中返回差。
rgb2gray()
将RGB图像或颜色图转换为灰度图;
I=rgb2gray(RGB)将真彩色图像RGB转换为灰度图像I。通过消除色调和饱和度信息,同时保留亮度,来将RGB图像转换为灰度图。
imnoise():向图像添加噪声
J=imnoise(I,‘gaussian’)将方差为0.01的零均值高斯白噪声添加到灰度图像I。
J=immoise(I,‘gaussian’,m)添加高斯白噪声,均值为m,方差为0.01。
J=imnoise(I,‘gaussian’,m,var_gauss)添加高斯白噪声,均值为m,方差为var_gauss。
J=imnoise(I,‘localvar’,var_local)添加局部方差为var_local的零均值高斯白噪声。
J=imnoise(I,‘localvar’,intensity_map,var_local)添加零均值高斯白噪声。噪声的局部方差 var_1ocal是I中图像强度值的函数。图像强度值到噪声方差的映射由向量intensity_map 指定。
J=imnoise(I,‘poisson’)从数据中生成泊松噪声,而不是向数据中添加人为噪声。有关详细信息,请参阅算法。
J=imnoise(I,'salt&pepper")添加椒盐噪声,默认噪声密度为0.05。这会影响大约5%的像素。
3=imnoise(I,‘salt&pepper’,d)添加椒盐噪声,其中d是噪声密度。这会影响大约dnumel(I)个像素。=imnoise(I,‘speckle’)使用方程]=I+nT 添加乘性噪声,其中n是均值为0、方差为0.05的均匀分布随机噪声。
J=imnoise(I,‘speckle’,var_speckle)添加方差为var_speckle的乘性噪声。

1、图像加法

效果如下:
在这里插入图片描述

test.m代码:

%图像加法
img1=imread("A.bmp");
img2=imread("B.bmp");
%rbg图像转变灰度图像
img3=rgb2gray(img1);
img4=rgb2gray(img2);
%灰度图像相加
img5=imadd(img3,img4);
%显示
subplot(1,3,1),imshow(img3),xlabel("A");
subplot(1,3,2),imshow(img4),xlabel("B");
subplot(1,3,3),imshow(img5),xlabel("A+B");

2、图像融合

效果如下:
在这里插入图片描述

test.m代码:

%图像融合
img1=imread("man.tif");
img2=imread("test1.png");
%修改图像大小
% img1=imresize(img1,[200,200]);
% img2=imresize(img2,[200,200]);

%图像相加,x,y必须具有相同大小和类
img3=imadd(img1,img2);

subplot(1,3,1),imshow(img1),xlabel("A");
subplot(1,3,2),imshow(img2),xlabel("B");
subplot(1,3,3),imshow(img3),xlabel("A+B");

3、图像融合,使用具体参数

效果如下:
在这里插入图片描述

test.m代码:

%图像融合,使用具体参数
img1=imread("test1.png");

%图像相加
img2=imadd(img1,50);
img3=imadd(img1,-50);

subplot(1,3,1),imshow(img1),xlabel("原图像");
subplot(1,3,2),imshow(img2),xlabel("增加亮度后的图像");
subplot(1,3,3),imshow(img3),xlabel("减弱亮度后的图像");

4、图像还原

效果如下:
在这里插入图片描述

test.m代码:

%图像还原
%原始图像
img=imread("test.png");
img=rgb2gray(img);
subplot(2,3,1),imshow(img),xlabel("(a)原图像");
[m,n]=size(img);

%加噪图像(被还原图像)
img1=imnoise(img,"gaussian",0,0.01);%叠加零均值高斯噪声(方差为0.01subplot(2,3,2),imshow(img1),xlabel("(b)加噪图像");

%2幅同类图像进行相加平均
J=zeros(m,n);
J=double(J);
for i=1:2
    X=imnoise(img,"gaussian");
    Y=double(X);
    J=J+Y/2;
end
subplot(2,3,3),imshow(mat2gray(J)),xlabel("(c)2幅图像平均");
%4幅同类图像进行相加平均
J=zeros(m,n);
J=double(J);
for i=1:4
    X=imnoise(img,"gaussian");
    Y=double(X);
    J=J+Y/4;
end
subplot(2,3,4),imshow(mat2gray(J)),xlabel("(d)4幅图像平均");
%8幅同类图像进行相加平均
J=zeros(m,n);
J=double(J);
for i=1:8
    X=imnoise(img,"gaussian");
    Y=double(X);
    J=J+Y/8;
end
subplot(2,3,5),imshow(mat2gray(J)),xlabel("(e)8幅图像平均");
%16幅同类图像进行相加平均
J=zeros(m,n);
J=double(J);
for i=1:16
    X=imnoise(img,"gaussian");
    Y=double(X);
    J=J+Y/16;
end
subplot(2,3,6),imshow(mat2gray(J)),xlabel("(f)16幅图像平均");

5、图像减法

效果如下:
在这里插入图片描述

test.m代码:

%图像减法
img1=imread("A.bmp");
img2=imread("B.bmp");
%修改图像大小
% img1=imresize(img1,[200,200]);
% img2=imresize(img2,[200,200]);

%图像相减,要求图像矩阵相同大小
img3=imsubtract(img1,img2);
subplot(1,3,1),imshow(img1),xlabel("A");
subplot(1,3,2),imshow(img2),xlabel("B");
subplot(1,3,3),imshow(img3),xlabel("A-B");

6、图像减法,捕捉图像运动轨迹

效果如下:
在这里插入图片描述

test.m代码:

%图像减法,运动图像轨迹
img1=imread("F4_8a.bmp");
img2=imread("F4_8b.bmp");
img3=imread("F4_8c.bmp");
subplot(2,3,1),imshow(img1),xlabel("a");
subplot(2,3,2),imshow(img2),xlabel("b");
subplot(2,3,3),imshow(img3),xlabel("c");

%图像相减
img4=imsubtract(img1,img2);
img5=imsubtract(img2,img3);
img6=imsubtract(img1,img3);


subplot(2,3,4),imshow(img4),xlabel("a-b");
subplot(2,3,5),imshow(img5),xlabel("b-c");
subplot(2,3,6),imshow(img6),xlabel("a-c");

素材:https://gitee.com/CYFreud/matlab/tree/master/image_processing/demo4_220328

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab学习4-图像处理之图像加法、图像减法、加噪 的相关文章

  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255
  • 二维随机微分方程 (SDE)

    我第一次研究随机微分方程 我正在寻求模拟和求解二维随机微分方程 模型如下 dp F t p dt G t p dW t where p 是一个 2 1 向量 p theta t phi t F是列向量 F sin theta Psi cos
  • MATLAB 子图标题和轴标签

    我有以下脚本来最终绘制 4 x 2 子图 files getAllFiles preliminaries n size files cases cell 1 n m cell 1 n for i 1 1 n S load files i c
  • 用于读取csv写入数组的c++程序;然后操作并打印到文本文件中(已经用 matlab 编写)

    我想知道是否有人可以帮助我 我正在尝试构建一个程序 从 csv 文件中读取大小未知的浮点数大数据块 我已经在 MATLAB 中编写了此代码 但想要编译和分发此代码 因此转向 C 我只是在学习并尝试阅读本文以开始 7 5 19892 4 23
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的
  • 可以避免迭代元胞数组时的“s{1} 烦恼”吗?

    The s 1 标题的 烦恼 指的是下面的 for 块中的第一行 for s some cell array s s 1 unpeel the enclosing cell do stuff with s end This s s 1 业务
  • 如何调整x轴和y轴的大小

    如何调整 x 轴和 y 轴的大小 我想要什么 更具体 3900 60 30 0 60 120 180 3600 我做了什么 a 0 0 1 10000 plot a 我应该写什么才能按预期调整 x 和 y 轴的大小 EDIT 我不想 390
  • Python 中的 eig(a,b) 给出错误“需要 1 个位置参数,但给出了 2 个”

    根据https docs scipy org doc numpy 1 15 0 user numpy for matlab users html https docs scipy org doc numpy 1 15 0 user nump
  • OpenCV功能类似于matlab的“查找”

    我正在寻找 openCV 中的一个函数来帮助我制作图像蒙版 例如在 MATLAB 中 B A or B 零 大小 A B A 10 c 有些功能可以让你通过mask向他们提出论据 按照您描述的方式创建面具 我认为您正在追求Cmp 或 Cmp
  • 了解 Matlab 中的 DEL2 函数以便用 C++ 对其进行编码

    为了用 C 编写 DEL2 matlab 函数 我需要了解该算法 我已经成功地为不在边界或边缘上的矩阵元素编写了函数 我已经看过几个有关它的主题 并通过输入 edit del2 或 type del2 来阅读 MATLAB 代码 但我不明白
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • 一次分配多个字段的聪明方法?

    由于遗留函数调用 我有时被迫编写像这样的丑陋的包装器 function return someWrapper someField a someField a b someField b and so on realistically it
  • 如何将条形图的 XtickLabels 向左移动?

    我目前正在尝试创建频率直方图 为此 我必须创建一个条形图 条形图之间没有空格 然而 这集中于XTickLabels在酒吧的中间 由于它是一个直方图 我希望数值位于每个条形之间的线上 以便它可以直观地指示间隔 本质上 我需要将所有刻度标签移至
  • 在 3d 空间中的两个平面之间进行插值

    我正在开发一种工具 可以让您在 3D 体积 上圈出 包围事物 我想通过标记 切片 1 和 3 并从该信息 填充 切片 2 来节省时间 两个简单的解决方案是 1 slice2 slice1 AND slice3 gets the overla
  • FFT 的功率谱密度

    我有一段代码可以获取部分信号的 FFT 现在我正在尝试获取 PSD Fs 44100 cj sqrt 1 T 6 dt 1 Fs left test 1 right test 2 time 45 interval 636 w range t
  • 如何在 MATLAB 中可视化球体的交集?

    似乎这个问题在一些地方被问过 包括SO https stackoverflow com questions 35130336 draws the intersecting volume of two spheres in matlab 我最
  • MATLAB中如何画水平线和垂直线?

    我目前正在尝试在 MATLAB 中绘制简单的垂直线和水平线 例如 我想绘制线 y 245 我该怎么做呢 MATLAB 根据您提供的向量逐点进行绘图 因此 要创建一条水平线 您需要改变x同时保持y对于垂直线恒定 反之亦然 xh 0 10 yh
  • 将自动生成的 Matlab 文档导出为 html

    我想为我开发的 Matlab 工具箱生成完整的帮助 我已经看到如何显示自定义文档 http www mathworks fr fr help matlab matlab prog display custom documentation h
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用

随机推荐

  • go使用excelize导出excel

    由于xlsx库两年没有更新了 所以今天又写了个使用excelize到处excel 传参格式仍可参照用xlsx格式 go语言使用tealeg xlsx导出excel 借我三行代码的博客 CSDN博客 type UserData struct
  • SpringBoot2.0 Actuator 监控参数说明

    基于SpringBoot2 0 Actuator metrics的监控 基于Oracle JDK9 G1 引言 SpringBoot2在spring boot actuator中引入了micrometer 对1 x的metrics进行了重构
  • 基于YOLOv5的光学遥感图像舰船目标检测算法

    源自 系统工程与电子技术 作者 成倩 李佳 杜娟 摘 要 针对YOLO you only look once v5算法在应用于光学遥感图像舰船目标检测任务时所面临的小目标误检率 漏检率较高的情况 提出一种基于YOLOv5改进的光学遥感图像舰
  • linux 关闭防火墙 及mysql 无密码登陆

    Linux中怎么去关闭防护墙和mysql的无密码登陆及修改密码 做为一个自己参考的记录 CentOS 防火墙关闭 关闭防火墙命令 systemctl stop firewalld service 开启防火墙 systemctl start
  • 统计某个班男女生人数_sql练习题

    Code 1 有如下表格和数据 2 ID Name Class Sex 3 4 1 张1 一班 男 5 2 张2 一班 男 6 3 张3 二班 女 7 4 张4 一班 男 8 5 张5 二班 女 9
  • kettle案例——数据清洗与校验(完全去重)

    1 源数据预览 2 打开kettle新建一个转换并添加下述步骤然后用跳连接 3 双击CSV文件输入进行配置 点击浏览导入文件 然后点击获取字段 最后点击预览看数据是否抽取进来 4 双击唯一行 哈希值 进行配置 在用来比较的字段处 添加要去重
  • matlab 海岸线绘制,m_map1.4 matlab中

    m map1 4 m map Contents m m map1 4 m map map html m map1 4 m map m coast m m map1 4 m map m contour m m map1 4 m map m c
  • 利用linux内核将多个文件编译成一个ko文件

    利用linux内核将多个文件编译成一个ko文件 1 如果一个驱动直接编译进内核 直接按照以下方式书写 obj y generic serial o vme scc o obj y a o 2 如果一个驱动要编译成模块 且一个模块由1个源文件
  • vue-cli3项目中使用flexible和rem适配移动端的一些踩坑

    最近在做一个移动端的项目 需要做一些适配处理 其实以前一直都是浑水摸鱼式的 虽然看了很多关于移动端适配的方案 感觉都很厉害 但一直迟迟不曾实践 ps 好像大部分中小公司对这方面都没啥要求啊 在网上找了一番后 发现手淘的flexible re
  • LInux目录结构

    文章目录 Linux的目录结构 Linux的目录结构 Linux路径的描述方式 目录各功能介绍 HOME目录和工作目录 Linux的目录结构 Linux的目录结构 Linux的目录结构是一个树型结构 Windows 系统可以拥有多个盘符 如
  • C语言-函数指针和指针函数的用法和区别

    1 简介 本文主要介绍指针函数和函数指针的定义和区别 2 指针函数 2 1 定义 指针函数 其本质是一个函数 该函数的返回值是一个指针 声明格式为 类型标识符 函数名 参数表 简单函数声明 int f int x int y 该函数的返回值
  • 详解socket中TCP的三次握手和四次挥手机制

    无论参考OSI还是TCP IP的网络模型 我们从传输层向更底层看 各层的协议都是在直接或间接的服务于主机与主机之间的通信 而传输层则是在进程与进程通信层面上的 传输层有两个重要的协议 TCP Transmission ControlProt
  • git:分支切换

    1 分支简介 分支 是针对某类开发工作的一个提交结点序列 序列中最新的提交表示了该分支代码的最新版本 分支通常根据工作类别命名 例如 dev test 分支 使用分支意味着你可以分离各个开发路线 然后在彼此不影响情况下同时向前推进 当前分支
  • C/C++ VS. Fortran

    C C VS Fortran 项目 C C Fortran 备注 软硬件环境 操作系统 Windows XP professional 2002 Service Pack 3 CUP Intel Core 2 Quad 2 66GHz 4核
  • 夜神安卓7.1.2安装xposed踩坑(Could not load available ZIP files.Pull down to try again)

    详情见我的博客小生博客 报错如图 1 通用制作xposed目录解决办法 夜神模拟器见第二点 1 1下载xposed https dl xda xposed info framework 下载对应的sdk 模拟器要下载x86的 我是安卓7 1
  • 2022百度之星初赛总结(非题解)

    完了玩废了 0题罚坐 下来看题解 是有简单题 完全完全能做的 大一这都没罚坐 悲 ccpc预选赛开始了 希望队友健在 T1 从dij到bf到fl 判定条件是等于 与公开ac是惊人的像 但样例都没调出来 T2 题目k 1 k n理解为n 1到
  • 晶体管 放大电路的 分析

    三极管共集电极放大电路和共基极放大电路详解 https wenku baidu com view 036f033a31b765ce050814c4 html 共集电极放大电路 https wenku baidu com view 204a7
  • RDS MySQL空间优化最佳实践

    简介 在前三期介绍了RDS for MySQL参数优化 锁问题以及延迟优化最佳实践之后 本期将介绍存储空间相关的最佳实践 存储空间是RDS很重要的一个指标 在RDS的工单问题中 空间问题的咨询可以排在top 5 当RDS的实际使用空间超过了
  • android手机销售app(IDEA,SpringBoot,SSM,MySQL)+支付宝支付+全套视频教程

    本项目亮点 支付宝支付 eCharts柱状图图表数据统计 项目功能介绍 本系统包含后台管理和前端app双端系统 后台管理的功能包含 登录 退出 修改管理员信息 基本信息与头像 资源管理 角色管理 资源权限分配 字典管理 用户管理 图书管理
  • Matlab学习4-图像处理之图像加法、图像减法、加噪

    图像处理 图像加法 例图像的叠加 调亮色等 图像减法 例捕捉运动图像的轨迹 环境matlab2020 使用imadd 加 imsubtract 减 imresize 改 imnoise 图像加噪 matlab函数 imadd X Y 将两个