文档章节

Matlab数字图像处理之三:图像算术运算及几何变换

天蚕宝衣
 天蚕宝衣
发布于 2017/03/16 20:29
字数 1495
阅读 84
收藏 0
点赞 0
评论 0

一、 实验目的

1. 掌握算术运算、几何变换的方法;

2. 了解图像算术运算、几何变换在数字图像处理中的初步应用;

3. 观察算法(变换)处理结果,体会图像算术运算和几何变换处理的过程和处理前后图像的变化。

二、 实验原理

1. 图像算术运算:两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的算术运算有如下四种形式:

C(x,y) = A(x,y) + B(x,y)

C(x,y) = A(x,y) – B(x,y)

C(x,y) = A(x,y) * B(x,y)

C(x,y) = A(x,y) / B(x,y)

2. MATLAB图像处理工具箱中的算术运算函数

matlab图像算术运算及几何变换

3. 图像的算术运算函数使用以下截取规则使运算结果符合数据范围的要求:

超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是uint8,那么大于255的结果(包括无穷大inf)将被设置为255。

三、 实验内容及步骤

1. 图像的加法运算

imadd函数调用格式:Z=imadd(X,Y)

实现:图像+图像,图像+常数

2. 噪声处理

Imnoise函数调用格式:Z=imnoise(X, type, parameter)

type:噪声的类型 parameter:噪声的参数

3. 图像的减法运算(差分方法)

用途:检测图像变化及运动物体,作为许多图像处理工作的准备步骤。

函数调用格式: Z = imsubtract(X,Y)

Z = imabsdiff(X,Y)

实现:图像-图像,图像-常数

4. 图像的乘法运算

用途:

实现掩模操作,即屏蔽掉图像的某些部分;

实现缩放:一幅图像乘以一个常数,如果使用的缩放因子大于1,那么将增强图像的亮度,如果因子小于1则会使图像变暗,效果优于简单添加像素偏移量。

由于时域的卷积或相关运算与频域的乘积运算对应,因此乘法运算有时也被作为一种技巧来实现卷积或相关处理。

immultiply函数调用格式:Z = immultiply(X,Y)

5. 图像的除法运算

用途:

校正成像设备的非线性影响,这在特殊形态的图像(如断层扫描等医学图像)处理中常常用到。

检测两幅图像间的区别——相应像素值的变化比率,而不是每个像素的绝对差异,因而称为比率变换。

imdivide函数的调用格式如下:Z = imdivide(X,Y)

6. 图像的四则运算

函数imlincomb按照双精度执行所有算术运算操作,而且仅对最好的输出结果进行截取,该函数的调用格式如下

Z = imlincomb(A,X,B,Y,C);

其中,Z=A*X+B*Y+C。

MATLAB会自动根据输入参数的个数判断需要进行的运算。例如:

Z = imlincomb(A,X,C) 计算Z=A*X+C:

Z = imlincomb(A,X,B,Y,) 计算Z=A*X+B*Y:

7. 图像的缩放

图像缩放函数imresize调用格式:

B = imresize(A,m)

B = imresize(A,m,method)

B = imresize(A,[mrows ncols],method)

B = imresize(…,method,n)

B = imresize(…,method,h(FIR滤波器))

Method:插值方法

nearest—最近邻插值(默认)

Bilinear—双线性插值

Bicubic—三次卷积插值

8. 图像的旋转

图像旋转函数imrotate调用格式:

B = imrotate(A,angle,method)
B = imrotate(A,angle,method,’crop’)

四、 实验结果

1. 图像的加法运算

实现:图像+图像

A=imread(‘rice.png’)

B=imread(‘testpat1.png’)

C=imadd(A,B)

subplot(1,3,1),imshow(A);subplot(1,3,2),imshow(B);subplot(1,3,3),imshow(C)

matlab图像算术运算及几何变换

实现:图像+/-常数

A=imread(‘cameraman.tif’)

B=A+50

C=A-50

subplot(1,3,1),imshow(A);subplot(1,3,2),imshow(B);subplot(1,3,3),imshow(C)

matlab图像算术运算及几何变换

2. 噪声处理

对图像rice.png分别加入高斯噪声、椒盐噪声和乘性噪声:

A=imread(‘rice.png’)

B=imnoise(A,’gaussian’,0.02)

C=imnoise(A,’salt & pepper’,0.02)

D=imnoise(A,’speckle’,0.02)

subplot(2,2,1),imshow(A) ,title(‘原图’);

subplot(2,2,2),imshow(B) ,title(‘高斯噪声’);

subplot(2,2,3),imshow(C) ,title(‘椒盐噪声’);

subplot(2,2,4),imshow(D) ,title(‘乘性噪声’);

matlab图像算术运算及几何变换

在原图上分别叠加密度为0.01~0.06的椒盐噪声后取平均

A=imread(‘pout.tif’);

B=imnoise(A,’salt & pepper’,0.01);

C=imnoise(A,’salt & pepper’,0.02);

D=imnoise(A,’salt & pepper’,0.03);

E=imnoise(A,’salt & pepper’,0.04);

F=imnoise(A,’salt & pepper’,0.05);

G=imnoise(A,’salt & pepper’,0.06);

H=0.1*B+0.2*C+0.1*D+0.2*E+0.2*F+0.2*G;

subplot(2,4,1),imshow(A) ,title(‘原图’);

subplot(2,4,2),imshow(B) ,title(‘椒盐0.01′);

subplot(2,4,3),imshow(C) ,title(‘椒盐0.02′);

subplot(2,4,4),imshow(D) ,title(‘椒盐0.03′);

subplot(2,4,5),imshow(E) ,title(‘椒盐0.04′);

subplot(2,4,6),imshow(F) ,title(‘椒盐0.05′);

subplot(2,4,7),imshow(G) ,title(‘椒盐0.06′);

subplot(2,4,8),imshow(H) ,title(‘椒盐平均’);

matlab图像算术运算及几何变换

3. 图像的减法运算(差分方法)

A=imread(‘cameraman.tif’)

B =imopen (A, strel(‘disk’,15))

C=imabsdiff(A,B)

subplot(1,3,1),imshow(A);subplot(1,3,2),imshow(B);subplot(1,3,3),imshow(C)

matlab图像算术运算及几何变换

4. 图像的乘法运算

A=imread(‘cameraman.tif’)

B=immultiply(A,0.5)

C=immultiply(A,1.2)

subplot(1,3,1),imshow(A),title(‘原图’);

subplot(1,3,2),imshow(B),title(’0.5′);

subplot(1,3,3),imshow(C),title(’1.2′)

matlab图像算术运算及几何变换

5. 图像的除法运算

A=imread(‘cameraman.tif’)

B =imopen (A, strel(‘disk’,15))

C=imabsdiff(A,B)

D= imdivide(A,C)

subplot(1,3,1),imshow(A),title(‘原图’);

subplot(1,3,2),imshow(C),title(‘减去背景的图像’);

subplot(1,3,3),imshow(D),title(‘原图和减去背景图像相除’)

matlab图像算术运算及几何变换

6. 图像的四则运算

A=imread(‘cameraman.tif’)

B =imopen (A, strel(‘disk’,15))

C=imabsdiff(A,B)

D= imdivide(A,C)

E= imlincomb(0.2,C,0.4,D,12)

subplot(1,3,1),imshow(C),title(‘C’);

subplot(1,3,2),imshow(D),title(‘D’);

subplot(1,3,3),imshow(E),title(’0.2*C+0.4*D+12′)

matlab图像算术运算及几何变换

7. 图像的缩放

A = imread(‘cameraman.tif’)

B = imresize(A,0.5,’nearest’)

C = imresize(A,0.8,’Bilinear’)

D = imresize(A,1.2,’Bicubic’)

figure,imshow(B),title(‘最近邻差值 0.5′);

figure,imshow(C),title(‘双线性插值 0.8′);

figure,imshow(D),title(‘三次卷积插值1.2′)

matlab图像算术运算及几何变换

8. 图像的旋转

A = imread(‘cameraman.tif’)

B = imrotate(A,30, ‘bilinear’,’crop’)

C = imrotate(A,30, ‘bilinear’,’loose’)

subplot(1,3,1),imshow(A),title(‘原图’);

subplot(1,3,2),imshow(B),title(‘crop’);

subplot(1,3,3),imshow(C),title(‘loose’)

matlab图像算术运算及几何变换

本文转载自:http://www.jishuzh.com/gis/matlab%E6%95%B0%E5%AD%97%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86%E4%B9%8B%E4%

共有 人打赏支持
天蚕宝衣
粉丝 18
博文 236
码字总数 178069
作品 0
天津
【工具使用系列】关于 MATLAB 形态学,你需要知道的事

如何进行图像操作 二值形态学基本运算 膨胀和腐蚀 膨胀 腐蚀 膨胀与腐蚀的结合 膨胀与腐蚀的对偶性 开启和闭合 击中或击不中变换 二值形态学图像处理 噪声滤除 边界提取 对象编著 图像的特性...

AllenMoore ⋅ 01/27 ⋅ 0

【工具使用系列】关于 MATLAB 图像处理工具箱,你需要知道的事

如何使用 MATLAB 图像处理工具箱 MATLAB 图像类型转换 图像文件的读写和查询 图像文件的显示 不同类型的图像显示方法 什么是 MATLAB 图像处理工具箱 图像 图像的概念 图像的分类 图像的表示 ...

AllenMoore ⋅ 01/28 ⋅ 0

(三)matlab数字图像处理实验-图像灰度变换处理

前两节都是熟悉一下怎么在matlab底下对图片做一些操作,并没有什么卵用,这一节稍微有点卵用,灰度变换一般是图像处理的第一步。 数字图像处理实验1-9点击下列链接有源码和链接: matlab数字...

aninstein ⋅ 01/06 ⋅ 0

【工具使用系列】关于 MATLAB 图像几何操作,你需要知道的事

如何进行图像几何操作 图像插值 图像的插值缩放 图像的插值旋转 图像的剪切 区域处理 多边形选择法 灰度选择法 其他选择方法 对指定区域的滤波 对指定区域的填充 图像内插 二维内插 内插方法...

AllenMoore ⋅ 01/25 ⋅ 0

离散余弦变换(DCT)

DCT变换、DCT反变换、分块DCT变换 一、引言 DCT变换的全称是离散余弦变换(Discrete Cosine Transform),主要用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性...

li_wen01 ⋅ 2017/06/05 ⋅ 0

“我爱智能”原创性博客索引

不知不觉,博客也写出了一点小体系,新的阶段已经开始,未来希望再接再厉继续补充这一体系,在成长中写博客,在博客中成长,在此先做一个小的梳理,谢谢大家的支持。 一)关于深度学习系列 ...

on2way ⋅ 2015/08/29 ⋅ 0

基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android)

本文将介绍C/S模式的图像处理系统。C/S的框架已经在[1]中作了简单的介绍。[2]中介绍了如何搭建基于android和WAMP5的B/S模式的本机测试平台。本系统是在[4]中介绍的基础上开发的,有关图像显示...

长平狐 ⋅ 2012/10/08 ⋅ 0

【matlab】matlab与线性代数实验基础

matlab与线性代数实验基础 作者:xuan97916 一、行列式 1、行列式的输入 方括号内逐行键入元素,同一行元素用逗号或者空格,两行元素之间用分号隔开。 在命令的末尾使用分号会终止输出! A=...

xuan97916 ⋅ 2017/06/24 ⋅ 0

现代图像处理技术试题

问题1:灰度图像数学形态学 以二值图像数学形态学为切入点,建立灰度图像数学形态学。 1.给出灰度图像的腐蚀、膨胀、开启和闭合等运算的表达式和基本性质; 2.对灰度图像,给出扁平结构元素...

乱世中的单纯 ⋅ 2014/11/26 ⋅ 1

Matlab图像处理入门教程(菜鸟级)

1,图像的读入和显示: (1)图像读入:A=imread('文件名',文件格式) [X,map]=imread('文件名') %X代表索引图像矩阵,map为颜色映射表 (2)图像显示:image(A); 2. 图像写回 A=imwrite('文件...

枫言风语 ⋅ 2012/09/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NFS介绍 NFS服务端安装配置 NFS配置选项

NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导...

lyy549745 ⋅ 31分钟前 ⋅ 0

Spring AOP 源码分析 - 筛选合适的通知器

1.简介 从本篇文章开始,我将会对 Spring AOP 部分的源码进行分析。本文是 Spring AOP 源码分析系列文章的第二篇,本文主要分析 Spring AOP 是如何为目标 bean 筛选出合适的通知器(Advisor...

java高级架构牛人 ⋅ 53分钟前 ⋅ 0

HTML-标签手册

标签 描述 <!--...--> 定义注释。 <!DOCTYPE> 定义文档类型。 <a> 定义锚。超链接 <abbr> 定义缩写。 <acronym> 定义只取首字母的缩写。 <address> 定义文档作者或拥有者的联系信息。 <apple......

ZHAO_JH ⋅ 55分钟前 ⋅ 0

SylixOS在t_main中使用硬浮点方法

问题描述 在某些使用场景中,应用程序不使用动态加载的方式执行,而是跟随BSP在 t_main 线程中启动,此时应用代码是跟随 BSP 进行编译的。由于 BSP 默认使用软浮点,所以会导致应用代码中的浮...

zhywxyy ⋅ 今天 ⋅ 0

JsBridge原理分析

看了这个Github代码 https://github.com/lzyzsd/JsBridge,想起N年前比较火的Hybrid方案,想看看现在跨平台调用实现有什么新的实现方式。代码看下来之后发现确实有点独特之处,这里先把核心的...

Kingguary ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧五-真正常用快捷键(收藏级)

如果你觉得前面几篇博文太啰嗦,下面是博主多年使用Intellij IDEA真正常用快捷键,建议收藏!!! sout,System.out.println()快捷键 fori,for循环快捷键 psvm,main方法快捷键 Alt+Home,导...

Mkeeper ⋅ 今天 ⋅ 0

Java 静态代码分析工具简要分析与使用

本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能、特性等方面对它们进行分析和比较,...

Oo若离oO ⋅ 今天 ⋅ 0

SpringBoot自动配置小记

spring-boot项目的特色就在于它的自动配置,自动配置就是开箱即用的本源。 不过支持一个子项目的自动配置,往往比较复杂,无论是sping自己的项目,还是第三方的,都是如此。刚接触会有点乱乱...

大_于 ⋅ 今天 ⋅ 0

React jsx 中写更优雅、直观的条件运算符

在这篇文字中我学到了很多知识,同时结合工作中的一些经验也在思考一些东西。比如条件运算符 Conditional Operator condition ? expr_if_true : expr_if_false 在jsx中书写条件语句我们经常都...

开源中国最帅没有之一 ⋅ 今天 ⋅ 0

vim编辑模式与命令模式

5.5 进入编辑模式 从编辑模式返回一般模式“Esc” 5.6 vim命令模式 命令 :“nohl”=no high light 无高亮,取消内容中高亮标记 "x":保存退出,和wq的区别是,当进入一个文件未进行编辑时,使...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部