matlab图像处理基础操作笔记
1.图片读取
rgb = imread('C:Users\doggy\Desktop\1.jpg'); %读取图片,引号内图片地址 image(rgb) %显示图片
2.读取图片数据到数组
A=imread('C:\Users\doggy\Desktop\1.jpg') %引号内为图片地址 %对于一张真色彩图片,数组A是一个三维数组,即M*N*3. %注意:对数组A进行运算时候,要将其转换成double型才可以,否则会算术溢出(当值大于255便溢出)。例如T=[123 252 12 0] %为数组A中的以部分元素,则T(1)+T(2)=0(溢出)。
3.改变图像像素,
hf = imread('C:\Users\doggy\Desktop\1.jpg') ; N = 800 ;%图片的像素为800*800 hf = imresize(hf,[N,N]) ;
4.窗口分割,图片旋转
A= imread('C:\Users\doggy\Desktop\1.jpg') ; %照片上下左右旋转 C0 = A ; C1 = rot90(C0,1) ;%逆时针旋转90 C2 = rot90(C0,2);%逆时针旋转180 C3 = rot90(C0,3);%逆时针旋转270 %显示旋转的图片 figure('NumberTitle','off','Name','图片旋转') ; subplot(2,2,1) ; %坐标象限 imshow(C0) ; xlabel('原始图片') ; subplot(2,2,2) ; imshow(C1) ; xlabel('左旋转') ; subplot(2,2,3) ; imshow(C2) ; xlabel('倒置') ; subplot(2,2,4) ; imshow(C3) ; %显示C3图并命名xlabel xlabel('右旋转') ; pause(3) ; %停顿3秒后关闭 close all ;
5、获取图像详细信息
imfinfo 'C:\Users\doggy\Desktop\1.jpg'
6.图片的保存
(1)
hf = imread('C:\Users\doggy\Desktop\1.jpg') ; imwrite(hf,'D:\目标地址\tmp.jpg') ;
(2)
hf = imread('C:\Users\doggy\Desktop\1.jpg') ; imwrite(hf,'D:\目标地址\aa.tif','compression','none','resolution',[200,200]); %转存并改变像素,格式必须为tif, imwrite(hf,'D:\目标地址\ab.tif','compression','none','resolution',[300,300]); %读取文件并显示 hf = imread('D:\目标地址\aa.tif') ; subplot(1,2,1) ; imshow(hf) ; hf = imread('D:\目标地址\ab.tif') ; subplot(1,2,2) ; imshow(hf) ;
7.数据类型转换
B = data_class_name(A) %其中data_class_name为数据内省,如double,char,Unit8/16/32,Int8/16/32 round(3.5)=3; %函数round可以将浮点数转化成整数
8.图像的旋转
(1)
hf = imread('C:\Users\doggy\Desktop\1.jpg');%读取的图像为三维数组 A = hf(end:-1:1,end:-1:1,:); subplot(1,2,1) ; imshow(hf); xlabel('原图像'); subplot(1,2,2) ; imshow(A) ; xlabel('旋转后的图像'); //函数rot90() 使用格式: B = rot90(A,n);
说明:
将矩阵A按照逆时针方向旋转n个90度,将旋转后的矩阵返回给B.
注:该函数只能对于二维矩阵进行旋转,并且旋转的度数为90的整数倍数.//
(2)
hf = imread('C:\Users\doggy\Desktop\1.jpg'); BL = hf(:,:,1);%变成黑白照片 A = rot90(BL,1);%逆时针转转90 B = rot90(BL,2) ;%逆时针旋转180 subplot(1,3,1) ; imshow(hf); xlabel('原图像'); subplot(1,3,2) ; imshow(A) ; xlabel('旋转90后的图像'); subplot(1,3,3) ; imshow(B) ; xlabel('旋转180后的图像');
(3)
B = imrotate(A,angle) B = imrotate(A,angle,method) B = imrotate(A,angle,method,bbox) %例: f = imread('C:\Users\doggy\Desktop\1.jpg'); set(0,'defaultfigurecolor','w');%设置绘图窗口背景颜色 for i = 1:1:16 %每次旋转45度,且使旋转后的图片的尺寸大小不变 B = imrotate(f,i*45/2,'bilinear','crop'); imshow(B); pause(1); end