掌握图像的读取、显示、代数运算和简单变换操作。
1、使用某种图像采集设备(扫描仪、数码相机、手机等)采集一张数字图像输入,并用分别用指定的图像文件格式bmp、png和jpg存储,并输出图像的大小。
%获取图像的信息
I = imread('gou.jpg');
%改变图像格式(png)
RGB = imread('gou.jpg','jpg');
imwrite(RGB ,'goua.png','png');
tupian=imread('goua.png');
%改变图像格式(bmp)
RGB = imread('gou.jpg','jpg');
imwrite(RGB ,'goub.bmp','bmp');
tupian1=imread('goub.bmp');
figure;
subplot(1,3,1),subimage(I);
title('jpg');
subplot(1,3,2),subimage(tupian);
title('png');
subplot(1,3,3),subimage(tupian1);
title('bmp');
运行结果:
2、读入一幅RGB图像,分别显示其R、G、B分量,再将该RGB彩色图像变换为灰度图像和二值图像,并在同一个窗口内分成六个子窗口来分别显示RGB图像和灰度图像、二值图像,R、G、B分量图像,注上文字标题。
%灰度图像
data = imread('gou.jpg');
m = rgb2gray(data);
%二值图像
n = graythresh(data);
y = im2bw(data, n);
%R、G、B分量
image = imread('gou.jpg');
imager = image(:,:,1);
imageg = image(:,:,2);
imageb = image(:,:,3);
figure;
subplot(2,3,1),subimage(image);
title('RGB');
subplot(2,3,2),subimage(m);
title('灰度图像');
subplot(2,3,3),subimage(y);
title('二值图像');
subplot(2,3,4),subimage(imager);
title('R分量');
subplot(2,3,5),subimage(imageg);
title('G分量');
subplot(2,3,6),subimage(imageb );
title('B分量');
运行结果
3、对两幅相关图像执行加、减、乘、除操作,在同一个窗口内分成六个子窗口来分别显示,注上文字标题。
%改变图像格式(png)
RGB = imread('12楼.jpg','jpg');
imwrite(RGB ,'12楼1.png','png');
tupian1=imread('12楼1.png');
%改变图像格式(png)
RGB = imread('花.jpg','jpg');
imwrite(RGB ,'花1.tif','tif');
tupian2=imread('花1.tif');
% 加法
K1 = imadd(tupian1, tupian2);
%减法
K2 = imsubtract(tupian1, tupian2);
%乘法
K3 = immultiply(tupian1, tupian2);
%除法
K4 = imdivide(tupian1, tupian2);
figure;
subplot(3,2,1),subimage(tupian1);
title('图1');
subplot(3,2,2),subimage(tupian2);
title('图2');
subplot(3,2,3),subimage(K1);
title('加法');
subplot(3,2,4),subimage(K2);
title('减法');
subplot(3,2,5),subimage(K3);
title('乘法');
subplot(3,2,6),subimage(K4 );
title('除法');
运行结果
4、对一幅图像进行平移、缩放、旋转,显示结果。
I = imread('gou.jpg');
%平移
se = translate(strel(1), [100 100]);
O = imdilate(I,se);
% 缩放
P = imresize(I, 15);
% 旋转
Q= imrotate(I,90);
figure;
subplot(2,2,1),subimage(I);
title('原图');
subplot(2,2,2),subimage(O);
title('平移后');
subplot(2,2,3),subimage(P);
title('缩放后');
subplot(2,2,4),subimage(Q);
title('旋转后');
5、显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图。
%灰度图像
i=imread('gou.jpg');
i=rgb2gray(i);
%图像变暗
o=imadjust(i,[ ],[0;0.5]);
subplot(2,2,1),subimage(i);
title('图像a');
subplot(2,2,2),subimage(o);
title('图像b');
subplot(2,2,3),imhist(i);
title('原图像');
subplot(2,2,4),imhist(o);
title('变暗图像');
运行结果
有什么错误的或者有什么建议可以私聊我,或者评论,一起学习,一起进步 加油!!!