1、掌握读、写图像的基本方法。
2、掌握 MATLAB 语言中图像数据与信息的读取方法。
3、掌握数字图像点运算方法。
4、掌握数字图像的代数运算与几何运算方法。
使用 MATLAB 实现对数字图像的读取、显示、存储等操作,编写对数字图像进行点运算、直方图显示以及几何运算的程序,并分析图像的各种运算的作用。
1、熟悉 Matlab 语言中对图像数据读取,显示等基本函数:imread、imwrite、subplot、 figure、imshow、rgb2gray
2、实现数字图像的线性运算、幂次变换
3、绘制图像的灰度直方图 使用 imhist 函数绘制 I_gray 图像的灰度直方图,灰度级数目指定为 128,并使用 title 函数将直方图的标题命名为“lena 灰度直方图”。
4、实现数字图像的缩放、旋转、转置变换
按照实验内容完成各步骤,给出每个步骤的 MATLAB 程序语句以及结果截图。
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);
clear all
clc
close all
scr = imread('lena.jpg');
% rgb2gray()将图像转成灰度图
scr_gray = rgb2gray(scr);
imhist(scr_gray,128);title('lena 灰度直方图');
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);
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);
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);