文章目录

  • 数字图像处理 原理与实践(MATLAB) 入门教学 实验一 常用的MATLAB图像处理命令与图像基本操作
    • 实验要求
    • 知识点
    • 实验内容
      • 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题
      • 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题
      • 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。
      • 4、熟悉数字图像处理常用函数的使用,调出帮助文档查看其各种不同用法。
      • 5、对一幅图像进行2倍、4倍、8倍和16倍减采样,显示结果。
      • 6、显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图。
      • 7、对图像b进行直方图均衡化,显示结果图像和对应直方图
      • 8、读入图像c,执行直方图规定化,使图像a的灰度分布与c大致相同,显示变换后图像及对应直方图。
    • 总结

数字图像处理 原理与实践(MATLAB) 入门教学 实验一 常用的MATLAB图像处理命令与图像基本操作

实验要求

1.熟悉并掌握MATLAB工具的使用

2.实现图像的读取、显示、代数运算和简单变换

知识点

读写图像文件

1.imread

imread函数用于读入各种图像文件,如:a=imread(‘e:\w01.tif’)

2.imwrite

imwrite函数用于写入图像文件,如:imwrite(a,‘e:\w02.tif’,’tif’)

3.imfinfo

imfinfo函数用于读取图像文件的有关信息,如:imfinfo(‘e:\w01.tif’)

图像的显示

1.image

image函数是MATLAB提供的最原始的图像显示函数,如:

a=[1,2,3,4;4,5,6,7;8,9,10,11,12];

image(a);

2.imshow

imshow函数用于图像文件的显示,如:

i=imread(‘e:\w01.tif’);

imshow(i);

title(‘原图像’)%加上图像标题

3.colorbar

colorbar函数用显示图像的颜色条,如:

i=imread(‘e:\w01.tif’);

imshow(i);

colorbar;

4.figure

figure函数用于设定图像显示窗口,如:figure(1); /figure(2);

5.subplot

把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。

Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。

6.plot绘制二维图形

plot(y)

Plot(x,y)xy可以是向量、矩阵。

图像类型转换

1.rgb2gray//灰色

把真彩图像转换为灰度图像

i=rgb2gray(j)

2.im2bw//黑白

通过阈值化方法把图像转换为二值图像

I=im2bw(j,level)

Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%

3.imresize

改变图像的大小

I=imresize(j,[m n])将图像j大小调整为m行n列

图像运算

1.imadd

两幅图像相加,要求同样大小,同种数据类型

Z=imadd(x,y)表示图像x+y

2.imsubstract

两幅图像相减,要求同样大小,同种数据类型

Z=imsubtract(x,y) 表示图像x-y

3.immultiply

Z=immultiply(x,y) 表示图像x*y

4.imdivide

Z=imdivide(x,y) 表示图像x/y

5.m = imadjust(a,[,],[0.5;1]) ;%图像变亮

n = imadjust(a,[,],[0;0.5]) ;%图像变暗

g=255-a;%负片效果

图像的增强

1、 直方图

imhist函数用于数字图像的直方图计算或显示,

imhist(I, n)计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。如果I是二值图像,那么n仅有两个值。

[counts,x] = imhist(…)返回直方图数据向量counts,相应的色彩值向量x。

如:

i=imread(‘e:\w01.tif’);

imhist(i);

2 、直方图均衡化

histeq函数用于数字图像的直方图均衡化,

J = histeq(I, n) 均衡化后的级数n,缺省值为64。

J = histeq(I, hgram) “直方图规定化”,即将原是图象 I 的直方图变换成用户指定的向量 hgram (即指定另一幅图像的直方图数据向量)。

如:

i=imread(‘e:\w01.tif’);

j=histeq(i,N);对图像i执行均衡化,得到具有N个灰度级的灰度图像j,N缺省值为64

3、 灰度调整

imadjust函数用于数字图像的灰度或颜色调整,

J = imadjust(I) 将灰度图像 I 中的亮度值映射到 J 中的新值并使 1% 的数据是在低高强度和饱和,这增加了输出图像 J 的对比度值。

J = imadjust(I,[low_in; high_in],[low_out; high_out])
将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。low_in 以下与 high_in 以上的值被剪切掉了,也就是说,low_in 以下的值映射到 low_out,high_in 以上的值映射到high_out。它们都可以使用空的矩阵[],默认值是[0 1]。

如:

i=imread(‘e:\w01.tif’);

j=imadjust(i,[0.3,0.7],[]);将图像i转换为j,使灰度值从0.30.7与缺省值01相匹配

运算函数

1、Zeros生成全0数组或矩阵

如 B = zeros(m,n) or B = zeros([m n]) 返回一个 m*n 全0矩阵

2、取整函数

floor最小取整函数

round四舍五入取整函数

ceil最大取整函数

如a = [-1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6i]

I=round(a)

I =[ -2 0 3 6 7 2+ 4i]

实验内容

1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题

close all;
clear all;
clc;
X=imread('屏保.jpg');
I=rgb2gray(X);BW1 = im2bw(X);
BW2 = im2bw(X,0.3);
BW3 = im2bw(X,0.6);
set(0,'defaultFigurePosition',[100,100,1000,500]);%图框位置%
set(0,'defaultFigureColor',[1 1 1]);%背景颜色%
figure
subplot(2,3,1),imshow(X);
title('原图像');
subplot(2,3,2),imshow(I);
title('灰度图像');
subplot(2,3,3),imshow(BW1);
title('二值图像');

2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题

close all;
clear all;
clc;
i=imread('屏保.jpg');
I=imresize(i,[800,800]);%将图像j大小调整为m行n列q=imread('123.jpg');
Q=imresize(q,[800,800]);%将图像j大小调整为m行n列Z1=imadd(I,Q)%表示图像x+y
Z2=imsubtract(I,Q)%表示图像x-y
Z3=immultiply(I,Q)%表示图像x*y
Z4=imdivide(I,Q)%表示图像x/y
figure(1),subplot(321),imshow(i);
title('原图像i');
figure(1),subplot(322),imshow(q);
title('原图像q');
figure(1),subplot(323),imshow(Z1);
title('加法图像');
figure(1),subplot(324),imshow(Z2);
title('减法图像');
figure(1),subplot(325),imshow(Z3);
title('乘法图像');
subplot(326),imshow(Z4);
title('除法像');

3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。

close all;
clear all;
clc;
l=imread('屏保.jpg');
m=imadjust(l,[,],[0.5;1]);%图像变亮
n=imadjust(l,[,],[0;0.5]);%图像变暗
g=255-l;%负片
figure(1),subplot(221),imshow(l);
title('原图像');
figure(1),subplot(222),imshow(m);
title('图像变亮');
figure(1),subplot(223),imshow(n);
title('图像变暗');
figure(1),subplot(224),imshow(g);
title('负片效果');

4、熟悉数字图像处理常用函数的使用,调出帮助文档查看其各种不同用法。

方法:选择函数(函数所在区变暗),点右键弹出菜单,选择“Help on Selection”

5、对一幅图像进行2倍、4倍、8倍和16倍减采样,显示结果。

close all;
clear all;
clc;
q=imread('屏保.jpg');
w=rgb2gray(q);
for e=1:4;
figure
[m,n]=size(w);
Q=zeros(floor(m/(e)),floor(n/(e*2)));
a=1,b=1;
for i=1:(e):m;
for j=1:(2*e):n;
Q(a,b)=w(i,j);
b=b+1;
end
a=a+1;
b=1;
end
imshow(uint8(Q));
end




6、显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图。

close all;
clear all;
clc;
i=imread('屏保.jpg');
i=rgb2gray(i);
o=imadjust(i,[,],[0;0.5]);%图像变暗
subplot(2,1,1);imhist(i),title('原图像');
subplot(2,1,2);imhist(o),title('变暗图像');

7、对图像b进行直方图均衡化,显示结果图像和对应直方图

close all;
clear all;
clc;
i=imread('屏保.jpg');
i=rgb2gray(i);
j=histeq(i);
subplot(2,2,1);imshow(i),title('原图像');
subplot(2,2,2);imshow(j),title('均衡化图像');
subplot(2,2,3);imhist(i),title('原图像直方图');
subplot(2,2,4);imhist(j),title('均衡化图像的直方图');

8、读入图像c,执行直方图规定化,使图像a的灰度分布与c大致相同,显示变换后图像及对应直方图。

close all;
clear all;
clc;
c=imread('屏保.jpg');
c=rgb2gray(c);
j=histeq(c,64);
[counts,x]=imhist(j);a=imread('123.jpg');
a=rgb2gray(a);
k=histeq(a,counts);subplot(3,2,1);imshow(c),title('原图像c');
subplot(3,2,2);imshow(a),title('原图像a');
subplot(3,2,3);imhist(c),title('原图像c直方图');
subplot(3,2,4);imhist(a),title('原图像a直方图');
subplot(3,2,5);imhist(j),title('原图像c均衡化直方图');
subplot(3,2,6);imhist(k),title('原图像a均衡化直方图');

总结

图像相加,最有意义的应用就是针对带噪图像的多帧叠加平均降噪

然后是图像相减,它的主要意义是增强图像间的差别,在医学造影方面有着非常重要的作用,比如数字减影血管造影

最后是乘除关系,它的主要用途是校正阴影

TIT 数字图像处理 原理与实践(MATLAB) 入门教学 实验一 常用的MATLAB图像处理命令与图像基本操作相关推荐

  1. TIT 数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化

    文章目录 数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化 实验要求 知识点 实验内容 1.采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3 ...

  2. 《数字图像处理原理与实践(MATLAB版)》一书之代码Part3

    本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part3,辑录该书第135至第184页之代码,供有需要读者下载研究使用.代码执行结果请参见原书配图. --------- ...

  3. 数字图像处理原理与实践(MATLAB版)勘误表

    本文系<数字图像处理原理与实践(MATLAB版)>一书的勘误表. [内容简介]本书全面系统地介绍了数字图像处理技术的理论与方法,内容涉及几何变换.灰度变换.图像增强.图像分割.图像去噪.小 ...

  4. matlab在光学实验中的应用,Matlab在光学信息处理仿真实验中的应用

    收稿日期 :200402213 基金项目 :佛山科学技术学院校级科研课题经费资助 作者简介 :谢嘉宁(1971 - ) ,女 ,广东潮州人 ,佛山科学技术学院物理系讲师 ,光学工程硕士 ,主要从事光学 ...

  5. matlab 入门 mobi,振动力学基础与MATLAB应用

    振动力学基础与MATLAB应用 下载 mobi epub pdf ☆☆☆☆☆ 鲍文博,白泉,陆海燕 编 下载链接在页面底部 发表于2021-03-17 类似图书 点击查看全场最低价 图书介绍 出版社: ...

  6. matlab幂次变换代码,常用的一些图像处理Matlab源代码

    #1:数字图像矩阵数据的显示及其傅立叶变换 #2:二维离散余弦变换的图像压缩 #3:采用灰度变换的方法增强图像的对比度 #4:直方图均匀化 #5:模拟图像受高斯白噪声和椒盐噪声的影响 #6:采用二维中 ...

  7. matlab与数学实验心得体会,数学matlab实验心得体会

    关于的数学学习心得 数学是一门重要的学科,相信大家都想学好它,下面我想和大家分享一下我的学习方法. 1.课时预习. 以前在初中时,没有课前预习的习惯. 后来上高中了,发现没有预习只是带着课本到课堂上听 ...

  8. matlab外罚函数实验报告,外罚函数法matlab

    罚函数法 37页 1下载券 罚函数法 11页 1下载券 罚函数法MATLAB程序 5页 2下载券 1120 罚函数法 (罚函数法... 52页 1下载券 ...... c Ax ? b . 3 算法的 ...

  9. 线性代数实践及MATLAB入门

    [书名]线性代数实践及MATLAB入门 [作者]陈怀琛,龚杰民 编著 [ISBN]978-7-121-07223-9 [出版社]电子工业出版社 [出版日期]2009年1月 [内容简介] 本书第1版是根 ...

最新文章

  1. cocos2dx在eclipse环境下集成ucsdk
  2. java字面量 方法区_(一)java的内存模型
  3. JSON.stringify 语法实例讲解
  4. Golden Gate 与 Oracle DataGuard的区别
  5. 用计算机打字英语单词,常用计算机专业英语词汇-前401-500单词
  6. python 时间函数小总结
  7. Microsoft 推出在AzureApp Service上支持Windows容器的公开预览版
  8. RocketMQ源码解析-Producer消息发送
  9. sentry-前端应用监控工具
  10. MySQL卸载与安装
  11. Scrum:官僚者们的游戏
  12. 学习pytorch中归一化transforms.Normalize
  13. 核心概念——节点/边/Combo——内置Combo——内置Combo总览
  14. 三国志战略版赤壁之战如何开荒?
  15. 8种在JavaScript数组中查找指定元素的方法
  16. spring-定时任务
  17. 国外网络需要验证中国手机号码的格式(获取手机的验证码时)(kaggle 收不到手机验证码)
  18. 前端如何实现搜索关键字的高亮显示
  19. 盘点世界杯 之 世界杯十大震惊榜
  20. python如何绘制条形图_python Matplotlib 系列教程(三)——绘制直方图和条形图

热门文章

  1. 25_类和面向对象的概念
  2. 阿里云Web应用防火墙使用教程
  3. 读书笔记-深度学习推荐系统4-推荐与embedding
  4. vim 操作Esc+:wq无效怎么办?
  5. 多线程的经典案例(卖票)
  6. 百度网盘文件和服务器同步,百度云同步盘怎么用?
  7. 苹果笔记本屏幕亮度调节不了/太暗怎么办?
  8. 四:es聚和函数Aggregations
  9. webview 重定向
  10. Response重定向