实验目的
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);
%

该实验通过MATLAB实现了数字图像的读取、显示、存储等基本操作,包括图像的线性变换和幂次变换。实验中,首先使用imread、imshow等函数对图像进行读取和显示,然后通过调整像素值实现图像亮度变化。接着,进行了灰度图像的线性和幂次变换,观察了图像灰度值的变化。此外,还绘制了图像的灰度直方图,展示了图像的分布特性。最后,利用imresize、imrotate和转置操作实现了图像的缩放、旋转和转置,展示了图像几何变换的效果。
最低0.47元/天 解锁文章
1447

被折叠的 条评论
为什么被折叠?



