I=imread('微信图片_20220429194904_512_512.bmp'); %读入图像
Id = imresize(I,1.5); %放大 1.5 倍
Ix = imresize(I,0.5); %缩小 0.5 倍
Iz=imrotate(I,60,'bilinear','crop'); %逆时针旋转 60°
Izz=imrotate(I,60,'bilinear','loose'); %逆时针旋转 60°
figure,imshow(I),title('原图'); %原图
figure,imshow(Id),title('放大 1.5'); %放大 1.5 倍
figure,imshow(Ix),title('缩小 0.5'); %缩小 0.5 倍
figure,imshow(Iz),title('逆时针旋转 60°'); %逆时针转 60°
figure,imshow(Izz),title('逆时针旋转 60°'); %逆时针转 60
I=imread('微信图片_20220429194904.jpg');
J = imresize(I,[512 512]);
imshow(I)
figure
imshow(J)
imwrite(J,'微信图片_20220429194904_512_512.jpg','jpg');
imwrite(J,'微信图片_20220429194904_512_512.bmp','bmp');
imwrite(J,'微信图片_20220429194904_512_512.png','png');
imwrite(J,'微信图片_20220429194904_512_512.tif','tif');
I=imread('微信图片_20220429194904_512_512.bmp');
[m,n]=size(I);
mm=1;
nn=1;
for i=1:2:m
for j=1:2:n
I1(mm,nn)=I(i,j);
nn=nn+1;
end
mm=mm+1;
nn=1;
end
figure;imshow(I); title('原图');
figure;imshow(I1);title('采样图');
I=imread('Lena.bmp');
%将 256 级的图像转换成128级,64级,32级灰度图像
%量化成128级
A=(0.5)*I;A1=floor(A);
%量化成64级
B=(0.25)*I;B1=floor(B);
%量化成32级
C=(0.125)*I;C1=floor(C);
figure
imshow(I);
figure
subplot(1,3,1),imshow(A1,[0,127]);title('128级灰度图像');
subplot(1,3,2),imshow(B1,[0,63]);title('64级灰度图像');
subplot(1,3,3),imshow(C1,[0,31]);title('32级灰度图像');
I=imread('Lena.bmp');
imshow(I)
J=filter2([1 2;-1 -2],I);
figure,imshow(J,[]);
I=zeros(100,100);
I(1:80,50:3:100)=1;
imshow(I);
I2=uint8(I);
figure,imshow(I2)
I3=I2~=0;
figure,imshow(I3)
whos;
I=imread('微信图片_20220429194904_512_512.bmp');
imshow(I)
figure
imshow(I(:,:,1))% 显示第 1 个颜色分量
figure
imshow(I(:,:,1))% 显示第 1 个颜色分量
figure
imshow(I(:,:,3))% 显示第 3 个颜色分量
load trees
imshow(X)
figure
imshow(X,map)
I=uint8(zeros(128,128,1,27)); % 27 帧文件 mri.tif 初始化
for i=1:27
[I(:,:,:,i),map]=imread('mri.tif',i); % 读入每一帧
end
imshow(I(:,:,:,1),map); % 显示第 1 帧
figure,imshow(I(:,:,:,10),map); % 显示第 10 帧
figure,imshow(I(:,:,:,20),map); % 显示第 20 帧
figure,imshow(I(:,:,:,27),map); % 显示第 27 帧
I=imread('Lena.bmp');
f=inline('max(x(:))'); %构造复合函数
I2=nlfilter(I,[16 16],f); %滑动邻域操作
imshow(I)
figure,imshow(I2)
I3=imread('Lena.bmp');
f=inline('uint8(round(mean2(x)*ones(size(x))))'); %构造复合函数
I4=blkproc(I3,[16 16],f); %分离邻域操作
figure,imshow(I3)
figure,imshow(I4)
I=imread('微信图片_20220429194904_512_512.bmp');
imshow(I);
I1=imcrop(I,[1 1 512 260]);
figure,imshow(I1)
I1=imread('Lena.bmp');
imshow(I1)
I2=imread('Barbara.bmp');
figure,imshow(I2)
Id=imadd(I1,I2);
figure,imshow(Id)
I=imread('rice.png');
imshow(I)
background = imopen(I,strel('disk',25)); %估计背景图像
figure, imshow(background);
I2=imsubtract(I,background); %从原图像中减去背景图像
figure, imshow(I2)
I=imread('微信图片_20220429194904_512_512.bmp');
figure,imshow(I)
I=double(I); %转换为双精度类型
I1=I*1.21+22;
I1=uint8(I1); %转换为 uint8
figure,imshow(I1)
I=imread('微信图片_20220429194904_512_512.bmp');
I1=immultiply(I,2);
I2=immultiply(I,0.5);
subplot(131),imshow(I)
subplot(132),imshow(I1)
subplot(133),imshow(I2)
I=imread('微信图片_20220429194904_512_512.bmp');
I1=imdivide(I,1.6);
figure,imshow(I);
figure,imshow(I1);
X=imread('football.jpg'); %读取图像
I=rgb2gray(X); %将RGB图像转换为灰度图像
figure
subplot(121),imshow(X); %显示原图像
subplot(122),imshow(I); %显示转换后灰度图像
[X,map] = imread('trees.tif'); %读取图像
newmap = rgb2gray(map); %将彩色颜色映射表转换为灰度颜色映射表
figure subplot(121),imshow(X,map); %显示原图像
subplot(122),imshow(X,newmap); %显示转换后灰度图像
RGB = imread('football.jpg'); %读取图像
[X1,map1]=rgb2ind(RGB,64); %将RGB图像转换成索引图像,颜色种数N是64种
[X2,map2]=rgb2ind(RGB,0.2); %将RGB图像转换成索引图像,颜色种数N是216种
map3= colorcube(128); %创建一个指定颜色数目的RGB颜色映射表
X3=rgb2ind(RGB,map3);
figure;
subplot(131),imshow(X1,map1); %显示用最小方差法转换后索引图像
subplot(132),imshow(X2,map2); %显示用均匀量化法转换后索引图像
subplot(133),imshow(X3,map3); %显示用颜色近似法转换后索引图像
I = imread(‘cameraman.tif’) %读取图像
[X,map]=gray2ind(I,38); %灰度图像向索引图像转换,N取8
figure
subplot(1,2,1),imshow(I); %显示原灰度图像
subplot(1,2,2),imshow(X, map); %显示N=8转换后索引图像
I = imread(‘coins.png’); %读取图像
X = grayslice(I,32); %将灰度图像转换为索引图像
figure
subplot(1,2,1),imshow(I); %显示原图像
subplot(1,2,2),imshow(X,jet(36));%jet(M)是相当于colormap,是一个M×3的数组
[X,map]=imread('forest.tif');
I = ind2gray(X,map); %将索引图像转换为灰度图像
figure,imshow(X,map); %索引图像
figure,imshow(I); %灰度图像
[X,map]=imread('kids.tif');
RGB=ind2rgb(X,map); %将索引图像转换为真彩色图像
figure, imshow(X,map); %显示索引图像
figure,imshow(RGB); %显示真彩色图像
I=imread('rice.png');
BW1=im2bw(I,0); %将灰度图像转换为二值图像,level值为0
BW2=im2bw(I,0.3); %将灰度图像转换为二值图像,level值为0.3
BW3=im2bw(I,0.5); %将灰度图像转换为二值图像,level值为0.5
BW4=im2bw(I,0.7); %将灰度图像转换为二值图像,level值为0.7
BW5=im2bw(I,1); %将灰度图像转换为二值图像,level值为1
figure;
subplot(231),imshow(I);
subplot(232),imshow(BW1); %显示level=0转换后的二值图像
subplot(233),imshow(BW2); %显示level=0.3转换后的二值图像
subplot(234),imshow(BW3); %显示level=0.5转换后的二值图像
subplot(235),imshow(BW4); %显示level=0.7转换后的二值图像
subplot(236),imshow(BW5); %显示level=1转换后的二值图像
load trees;
BW = im2bw(X,map,0.9); %将索引图像转换为二值图
figure
subplot(1,2,1),imshow(X,map); %显示原索引图像
subplot(1,2,2),imshow(BW); %显示转换后二值图像
I=imread('pears.png'); %读取图像信息
BW=im2bw(I,0.5); %将RGB图像转换为二值图像
figure,
subplot(121),imshow(I); %显示原图像
subplot(122),imshow(BW); %显示转换后二值图像
X=magic(256);
I= mat2gray(X); %将矩阵I转换为灰度图像
imshow(I); %显示转换后灰度图像
gamma=0.5; %设定调整线性度取值
I=imread('peppers.png'); %读入要处理的图像,并赋值给I
R=I; %将图像数据赋值给R
R (:,:,2)=0; %将原图像变成单色图像,保留红色
R(:,:,3)=0; R1=imadjust(R,[0.5 0.8],[0 1],gamma); %利用函数imadjust调整R的灰度,结果返回R1
G=I; %将图像数据赋值给G
G(:,:,1)=0; %将原图像变成单色图像,保留绿色
G(:,:,3)=0;
G1=imadjust(G,[0 0.3],[0 1],gamma); %利用函数imadjust调整G的灰度,结果返回G1
B=I; %将图像数据赋值给B
B(:,:,1)=0; %将原图像变成单色图像,保留蓝色
B(:,:,2)=0;
B1=imadjust(B,[0 0.3],[0 1],gamma); %利用函数imadjust调整B的灰度,结果返回B1
I1=R1+G1+B1; %求变换后的RGB图像
figure(1)
subplot(121),imshow(R);%绘制R、R1、G、G1、B、B1图像,观察线性灰度变换结果
subplot(122),imshow(R1);
figure(2);
subplot(121),imshow(G);
subplot(122),imshow(G1);
figure(3);
subplot(121),imshow(B);
subplot(122),imshow(B1);
figure(4);
subplot(121),imshow(I);
subplot(122),imshow(I1);
R=imread('微信图片_20220429194904_512_512.bmp');%读入原图像,赋值给R
J=rgb2gray(R); %将彩色图像数据R转换为灰度图像数据J
[M,N]=size(J); %获得灰度图像数据J的行列数M,N
x=1;y=1; %定义行索引变量x、列索引变量y
for x=1:M
for y=1:N
if (J(x,y)<=35); %对灰度图像J进行分段处理,处理后的结果返回给矩阵H
H(x,y)=J(x,y)*10;
elseif(J(x,y)>35&J(x,y)<=75);
H(x,y)=(10/7)*[J(x,y)-5]+50;
else(J(x,y)>75);
H(x,y)=(105/180)*[J(x,y)-75]+150;
end
end
end
subplot(121),imshow(J)
subplot(122),imshow(H);
R=imread('微信图片_20220429194904_512_512.bmp'); %读入图像,赋值给R
G=rgb2gray(R); %转成灰度图像
G2=double(G); %数据类型转换成双精度
O=(log(G2+1))/10; %进行基于常用对数的非线性灰度变换
subplot(121),imshow(G);
subplot(122),imshow(O);
[1]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
https://www.icourse163.org/course/FJNU-1003147002?outVendor=zw_mooc_pclszykctj_
以上内容仅作为个人学习笔记,无商业行为。