matlab图像类型的转换

图像类型的转换

抖动算法 dither

将RGB图像抖动成索引图像

li=imread('E:\a_matlab_file\picture\***.jpg');
map=pink(512);
x=dither(li,map);
subplot(1,2,1);
imshow(li);
title('原始图像');
subplot(1,2,2);
imshow(x,map);
title('抖动成索引图像');

在这里插入图片描述
可通过**colormap()**对颜色进行更改

% 输出当前所使用的颜色三维矩阵
disp(colormap(map));
% 更换一种颜色
cmap=colormap('Jet');
截取的部分当前所使用的map 颜色矩阵

在这里插入图片描述
colormap:matlab中自带了许多选项,可通过编辑查看
选中Figure1中的编辑,然后选择图像属性
在这里插入图片描述

li=imread('E:\a_matlab_file\picture\***.jpg');
map=pink(512);
x=dither(li,map);
subplot(1,3,1);
imshow(li);
title('原始图像');
subplot(1,3,2);
imshow(x,map);
title('抖动成索引图像');
disp(colormap(map));
cmap=colormap('Jet');
y=dither(li,cmap);
subplot(1,3,3);
imshow(y,cmap);
title('再次抖动成索引图像');

在这里插入图片描述

dither函数将灰度图像抖动成二值图像

i=imread('E:\a_matlab_file\rgb2gray.jpg');
BW=dither(i);
subplot(1,2,1);
imshow(i);
title('原始图像');
subplot(1,2,2);
imshow(BW);
title('二值图像');

在这里插入图片描述

将数据矩阵转换成灰度图像 mat2gray()

filter2() B为滤波器.X为要滤波的数据,这里将B放在X上,一个一个移动进行模板滤波.

i=imread('pout.tif');
A=filter2(fspecial('sobel'),i);
J=mat2gray(A);
subplot(1,2,1);
subimage(A);
title('原始图像');
subplot(1,2,2);
subimage(J);
title('转换为灰度图像');

在这里插入图片描述

% imresize()对图像实现缩放

i=imread('E:\a_matlab_file\picture\***.jpg');
J=imresize(l,0.5);
subplot(2,2,1);imshow(l);
title('原始图像');
disp('图像放大,最近邻插值法运算时间:');
tic
J1=imresize(J,8,'nearest');
toc
subplot(2,2,2);imshow(J1);
title('图像放大,最近邻插值')
disp('图像放大,双线性插值法运算时间');
tic
J2=imresize(J,8,'bilinear');
toc
subplot(2,2,3);imshow(J2);
title('图像放大,双线性插值')
disp('图像放大,双立方插值法运算时间');
tic
J3=imresize(J,8,'bicubic');
toc
subplot(2,2,4);imshow(J3);
title('图像放大,双立方插值');

help imresize();

在这里插入图片描述
在这里插入图片描述

图像的裁剪

手动裁剪

[x,map]=imread('E:\a_matlab_file\picture\***.jpg');
figure;imshow(x,map);
I2=imcrop(x,map);
figure;imshow(I2);

在这里插入图片描述
选中所要裁剪的地方,然后双击即可获取
在这里插入图片描述
固定自动裁剪

l=imread('***.jpg');
l2=imcrop(l,[50 80 80 112]);
figure;imshow(l),
title('原始图像');
figure;imshow(l2)
title('剪切图像');

在这里插入图片描述

图像的旋转

A=imread('E:\a_matlab_file\picture\三食堂片刻一角.jpg');
J1=imrotate(A,60);
J2=imrotate(A,-30);
J3=imrotate(A,60,'bicubic','crop');
J4=imrotate(A,30,'bicubic','loose');
figure;
subplot(221),imshow(J1);
title('逆时针旋转60度');
subplot(222),imshow(J2);
title('顺时针旋转30度');
subplot(223),imshow(J3);
title('裁剪的旋转');
subplot(224),imshow(J4);
title('不裁剪的旋转');

在这里插入图片描述

将索引图像转换为灰度函数

ind2gray()

load trees
subplot(1,2,1);
imshow(X,map);
l=ind2gray(X,map);
title('原始图像');
subplot(1,2,2);
imshow(l);
title('灰度图像');

在这里插入图片描述

将索引图像转换成RGB图像

% ind2rgb()
[l,map]=imread('m83.tif');
X=ind2rgb(l,map);
subplot(1,2,1);
imshow(l,map);
title('原始图像');
subplot(1,2,2);
imshow(X);
title('RGB图像');

在这里插入图片描述

RGB图像转换为灰度图像

RGB=imread('E:\a_matlab_file\picture\sky.jpeg');
X=rgb2gray(RGB);
subplot(1,2,1);
imshow(RGB);
title('原始图像');
subplot(1,2,2);
imshow(X);
title('灰度图像');

在这里插入图片描述

将灰色图像写入当前文件夹

RGB=imread('E:\a_matlab_file\picture\sky.jpeg');
X=rgb2gray(RGB);
imshow(X);
imwrite(X,'rgb2gray.jpg');

在这里插入图片描述
在这里插入图片描述

灰度图像转换成索引图像

i=imread('cell.tif');
[X,map]=gray2ind(i,32);
subplot(1,2,1);
imshow(i);
title('原始图像');
subplot(1,2,2);
imshow(X,map);
title('索引图像');

在这里插入图片描述

i=imread('E:\a_matlab_file\picture\sky.jpeg');
[X,map]=gray2ind(i,64);		%32--->64--->255
figure,
subplot(1,2,1);
imshow(i);
title('原始图像');
subplot(1,2,2);

根据gray2ind(n)的值不同,所显示的索引图像灰度级不同,值越大,灰度级越小
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设定阈值将灰度图像转换成索引图像

在这里插入图片描述

% grayslice()
% grayslice(I,n)、grayslice(I,v)
% n为将灰度图像均匀量化为n个等级
% v是阈值矢量,按照v对图像进行阈值划分
i=imread('tire.tif');
X2=grayslice(i,251); 			%8->100->200->251 
figure,
subplot(1,2,1);
subimage(i);
title('原始图像');
subplot(1,2,2);
subimage(X2);
title('索引图像');

在这里插入图片描述

转换为二值图像

i=imread('E:\a_matlab_file\picture\sky.jpeg');
X=im2bw(i,0.5);
subplot(1,2,1);
imshow(i);
title('原始图像');
subplot(1,2,2);
imshow(X);
title('二值图像');

在这里插入图片描述
根据值设置的不同,所显示的二值图像也不同
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值