matlab
读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像、灰度图像和二值图像,注上文字标题,并将结果以文件形式存到磁盘上。
close all;
clear;
clc;
%读取图像
I0=imread('lab12.jpeg'); %原始图像
%I0=im2double(I0);
I1=rgb2gray(I0); %灰度图像
I2=im2bw(I0,0.5); %二值图像
%显示
figure('NumberTitle','off','name','图像的读取、显示'),
subplot(1,3,1);imshow(I0);title('RGB图像','FontName','宋体');
subplot(1,3,2);imshow(I1);title('灰度图像','FontName','宋体');
subplot(1,3,3);imshow(I2);title('二值图像','FontName','宋体');
对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成6个子窗口来分别显示,注上文字标题。
close all;
clear;
clc;
%读入图像
I1=imread('lab11.jpeg');
I2=imread('lab12.jpeg');
%转换成双精度
%将将图像类型转换成双精度是因为:
%uint8进行数据处理的时候,容易造成数据溢出或精度不够
%有些函数支持double型,而不支持uint8的数据类型
%matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算
I1=im2double(I1);
I2=im2double(I2);
%改变图像大小
J1=imresize(I1,[350 350]);
J2=imresize(I2,[350 350]);
%加、减、乘、除
J3=imadd(J1,J2); %相当于J3=J1+J2;
J4=imsubtract(J1,J2); %相当于J4=J1-J2;
J5=immultiply(J1,J2); %相当于J5=J1.*J2;
J6=imdivide(J1,J2); %相当于J6=J1./J2;
%显示图像
figure('NumberTitle','off','name','代数运算、简单变换'),
subplot(3,2,1);imshow(J1);title('原始图像1','FontName','宋体');
subplot(3,2,2);imshow(J2);title('原始图像2','FontName','宋体');
subplot(3,2,3);imshow(J3);title('加','FontName','宋体');
subplot(3,2,4);imshow(J4);title('减','FontName','宋体');
subplot(3,2,5);imshow(J5);title('乘','FontName','宋体');
subplot(3,2,6);imshow(J6);title('除','FontName','宋体');
本次实验内容还是比较简单的,主要是熟悉matlab操作,所以需要多多练习使基础扎实,为后续的图像分割、图像识别等领域提供必要的基础。
照理是有分析的,但是比较懒,嘻嘻嘻