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


文章目录

  • 数字图像处理 原理与实践(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
把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。
【数字图像MATLAB|TIT 数字图像处理 原理与实践(MATLAB) 入门教学 实验一 常用的MATLAB图像处理命令与图像基本操作】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('二值图像');

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

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('除法像');

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

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('负片效果');

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

4、熟悉数字图像处理常用函数的使用,调出帮助文档查看其各种不同用法。
方法:选择函数(函数所在区变暗),点右键弹出菜单,选择“Help on Selection”
数字图像MATLAB|TIT 数字图像处理 原理与实践(MATLAB) 入门教学 实验一 常用的MATLAB图像处理命令与图像基本操作
文章图片

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

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

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

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

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

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('变暗图像');

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

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('均衡化图像的直方图');

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

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均衡化直方图');

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

总结 图像相加,最有意义的应用就是针对带噪图像的多帧叠加平均降噪
然后是图像相减,它的主要意义是增强图像间的差别,在医学造影方面有着非常重要的作用,比如数字减影血管造影
最后是乘除关系,它的主要用途是校正阴影

    推荐阅读