实验一 数字图像基本操作及基本运算

实验目的

1、掌握读、写图像的基本方法。
2、掌握 MATLAB 语言中图像数据与信息的读取方法。
3、掌握数字图像点运算方法。
4、掌握数字图像的代数运算与几何运算方法。


实验内容

使用 MATLAB 实现对数字图像的读取、显示、存储等操作,编写对数字图像进行点运算、直方图显示以及几何运算的程序,并分析图像的各种运算的作用。


实验步骤

1、熟悉 Matlab 语言中对图像数据读取,显示等基本函数:imread、imwrite、subplot、 figure、imshow、rgb2gray

  • 使用 imread 函数读取 lena.jpg 图像文件,观察一下图像数据,了解一下数字图像在 MATLAB 中的处理就是处理一个矩阵。
  • 将这个图像用 imshow 函数显示出来,尝试将图像的值减小 50,使用 figure 函数创建一个新的窗口,再将新的图像显示出来,观察图像颜色的变化。
  • 使用 rgb2gray 函数将 lena.jpg 转换成灰度图像,记为变量 I_gray,并使用 imwrite 函数将灰度图像保存为‘lena_gray.jpg’

2、实现数字图像的线性运算、幂次变换

  • 对灰度图像 I_gray 进行线性变换,分别使用 s=1.2r+1 和 s=0.3r+1 作为变换函数得到 变换后的图像,使用 subplot 以及 imshow 同时显示原图像以及变换后的图像,观察图像 灰度值的变化。
  • 对灰度图像 I_gray 进行幂次变换,分别使用 s=r^1.05和 s=r^0.8作为变换函数得到变换后的图像,使用 subplot 以及 imshow 同时显示原图像以及变换后的图像,观察图像灰度值的变化。(注:MATLAB 中不能对 uint8 类型的数据计算非整数次幂,因此在进行幂次变换前需先使用 double 函数将数据类型转换为双精度类型,变换后再使用uint8函数转换为整数类型进行显示)。

3、绘制图像的灰度直方图 使用 imhist 函数绘制 I_gray 图像的灰度直方图,灰度级数目指定为 128,并使用 title 函数将直方图的标题命名为“lena 灰度直方图”。

4、实现数字图像的缩放、旋转、转置变换

  • 使用 imresize 函数将 I_gray 图像的空间分辨率缩小为原来的 1/4,即长宽各缩小为 原来的 0.5 倍,并显示缩小后的图像。
  • 使用 imrotate 函数将 I_gray 图像沿逆时针方向旋转 30 度,并显示旋转后的图像。
  • 将 I_gray 图像进行转置,并显示转置后的图像。(注:对图像进行转置只需将表示图 像的矩阵进行转置操作即可。)

实验报告

按照实验内容完成各步骤,给出每个步骤的 MATLAB 程序语句以及结果截图。

实验步骤1和2

clear all
clc
close all

%1.1 imread实现‘lena.jpg'文件的读取
scr = imread('lena.jpg');
figure(1);
subplot(3,3,1);
imshow(scr);

%1.2将图像的值减少50
scr_brighter = scr-50;
subplot(3,3,2);
imshow(scr_brighter);

%1.3 把图像转换成灰度图
scr_gray = rgb2gray(scr);
subplot(3,3,3);
imshow(scr_gray);

%2.1 对图像进行线性变换
scr_gray_t1 = scr_gray*1.2+1;
subplot(3,3,4);
imshow(scr_gray_t1);

scr_gray_t2 = scr_gray*0.3+1;
subplot(3,3,5);
imshow(scr_gray_t2);

%2.2 对图像进行幂次变化
%变化前要将数据类型用double()变成双精度型
%变化后要变成uint8型,不然无法显示
scr_gray_copy = double(scr_gray);
scr_gray_t3 = uint8(scr_gray_copy.^1.05);
subplot(3,3,6);
imshow(scr_gray_t3);

scr_gray_t4 = uint8(scr_gray_copy.^0.8);
subplot(3,3,7);
imshow(scr_gray_t4);

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

实验步骤3

clear all
clc
close all

scr = imread('lena.jpg');

% rgb2gray()将图像转成灰度图
scr_gray = rgb2gray(scr);
imhist(scr_gray,128);title('lena 灰度直方图');

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

实验步骤4.1

clear all
clc
close all

scr = imread('lena.jpg');

scr_gray = rgb2gray(scr);
figure,imshow(scr_gray);
scr_gray_resize = imresize(scr_gray,0.5);
figure,imshow(scr_gray_resize);

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

实验步骤4.2

clear all
clc
close all

scr = imread('lena.jpg');

scr_gray = rgb2gray(scr);
figure,imshow(scr_gray);
scr_gray_rotation = imrotate(scr_gray,30);
figure,imshow(scr_gray_rotation);

在这里插入图片描述

实验步骤4.3

clear all
clc
close all

scr = imread('lena.jpg');

scr_gray = rgb2gray(scr);
figure,imshow(scr_gray);
scr_gray_transposition = scr_gray';
figure,imshow(scr_gray_transposition);

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

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值