数字图像处理

Lecture 2
1、定义文件路径
#在当前文件夹进行设置;
2、图像读取与输出
(1)imread函数
功能:实现多种类型图像文件的读取,如:BMP、GIF、JPEG、PNG、RAS等。
调用格式:A = imread(filename, fmt)。filename为图像文件名,可以是灰度图像,也可以是彩色图像,如果文件不在当前目录或不在Matlab目录下,则需要列全文件路径。fmt为文件的扩展名,指定文件类型。A为图像数据矩阵。
(2)imshow函数
功能:显示图像。
调用格式:
imshow(I,n):显示灰度图像I,n为要显示图像的灰度等级,整数,默认为256。
Imshow(I,[LOW HIGH]):以规定的灰度级范围[LOW HIGH]来显示灰度图像I,低于LOW值的显示为黑,高于HIGH值的显示为白,默认按256个灰度级显示。
imshow(RGB):显示真彩色图像RGB。
imshow(BW):显示二值图像BW。
imshow(X,map):显示索引图像,X为索引图像的数据矩阵,map为其颜色映射表。
imshow filename:显示filename指定的图像,若文件包括多帧图像,则显示第一幅,且文件必须在MATLAB的当前目录下。
(3)imwrite函数
功能:实现图像文件的保存。
调用格式:
imwrite(A,’filename’,fmt):A是要保存的图像数据矩阵,filename是文件名,fmt是文件格式。
imwrite(X,map,’filename’,fmt):X为索引图像的数据矩阵,map为其颜色映射表。
(4)whos函数
功能:显示当前内存中图像信息,加具体文件则为显示具体图像信息;
调用格式:
whos; %显示当前所有变量;
whos imgxx;显示变量信息;
(5)figure函数
功能:新建图形显示窗口;
调用格式:figure;
(6)subplot函数
功能:一个绘图窗口中显示多个图形;
调用格式:
subplot(m,n,k);
subplot(1,3,1);构建1行3列图形显示,显示第一个

实例1:读取图像、显示、输出
img1=imread(‘orange.jpg’);
img2=imread(‘house1.jpg’);
imshow(img1);
imshow(img2);
imwrite(img1,’orangenew.jpg’);
imwrite(img2,’housenew.jpg’);

实例2:转化为灰度图像、0~1灰度图像、rgb2hsv、rgb2ycbcr
img3=rgb2gray(img1);
img4=rgb2gray(img2);
img5=im2double(img2);
P1=rgb2hsv(img1);
P2=rgb2ycbcr(img1);

实例3:实现图像取反
img6=255-img3;
imshow(img6);

实例4:二值化图像
img6=im2double(img3);
bw=zeros(size(img6));
bw(img7>0.4)=1;
imshow(bw);

实例5:实现蓝绿通道互换
A=imread(‘house1.jpg’);
R=A(:,:,1); %获取红色分量
G=A(:,:,2); %获取绿色分量
B=A(:,:,3); %获取蓝色分量
%绿蓝交换
P1=A;
P1(:,:,3)=G;
P1(:,:,2)=B;
subplot(121),imshow(A),title(‘Original image’);
subplot(122),imshow(P1),title(‘Green2Blue image’);

实例6:实现蓝色分量加倍
A=imread(‘house1.jpg’);
A1=A;
R=A1(:,:,1);
G=A1(:,:,2);
B=A1(:,:,3);
A1(:,:,1)=R;
A1(:,:,2)=G;
A1(:,:,3)=2*B; %图像的蓝色分量加倍
subplot(121),imshow(A),title(‘Original image’);
subplot(122),imshow(A1),title(‘DoubleBlue image’);

实例7:绘制灰度图像直方图
#绘制直方图
imhist(img2);
#绘制固定区间数量的直方图;
#读取图片house1,orange,进行灰度化,观察两个图片灰度直方图差异。

clc:清除命令窗口的内容,对工作环境中的全部变量无任何影响
close:关闭当前的Figure窗口
close all:关闭所有的Figure窗口
clear:清除工作空间的所有变量
clear all:清除工作空间的所有变量,函数,和MEX文件

Lecture 3_1图像基本运算
复习:
(1)rgb2hsv函数
功能:实现RGB数据图像向HSV数据图像的转换。
调用格式:
img1 = rgb2hsv(RGB)。RGB为RGB彩色图像,为3维矩阵;HSV为3维HSV图像矩阵,3维依次为H、S、V,取值均在[0,1]范围内。
(2)rgb2ycbcr函数
img2 = rgb2ycbcr(RGB) :实现RGB数据图像向YCbCr数据图像的转换。
(3)rgb2gray函数
功能:彩色图像灰度化。
调用格式:
img3 = rgb2gray(RGB):真彩色RGB图像变换为灰度图像I。
NEWMAP = rgb2gray(MAP):变换索引图像的调色板为灰度调色板。

本节函数与实验:

(1)imtransform函数
功能:实现图像几何变换。
调用格式:
B = imtransform(A,TFORM,INTERP,param1,val1,param2,val2,…) :对图像A实现空间变换,TFORM为maketform函数或cp2tform函数产生的结构;INTERP为插值方法,可取“‘nearest’, ‘bilinear’, ‘bicubic’”。
T = maketform(TRANSFORMTYPE,…):产生转换结构;TRANSFORMTYPE为变换类型,可以为“‘affine’ 仿射型变换, ‘projective’ 投影型变换, ‘custom’ 自定义, ‘box’ 使用另外参数, ‘composite’ 多次调用”。
实验:
Image=imread(‘lotus.bmp’);
deltax=20;deltay=20;
T=maketform(‘affine’,[1 0 0;0 1 0;deltax deltay 1]);
NewImage1=imtransform(Image,T,‘XData’,[1,size(Image,2)],‘YData’,[1,size(Image,1)],‘FillValue’,255);
NewImage2=imtransform(Image,T,‘XData’,[1,size(Image,2)+deltax],‘YData’,[1,size(Image,1)+deltay],‘FillValue’,255);
subplot(131),imshow(Image),title(‘原图’);
subplot(132),imshow(NewImage1),title(‘画布尺寸不变平移’);
subplot(133),imshow(NewImage2),title(‘画布尺寸放大平移’);

(2)imrotate函数
功能:实现图像旋转。
调用格式:
B = imrotate(A,ANGLE,METHOD,BBOX):A为要进行旋转的图像;ANGLE为要旋转的角度()逆时针为正,顺时针为负;METHOD为图像旋转插值方法,可取“‘nearest’, ‘bilinear’, ‘bicubic’”,默认为nearest;BBOX指定返回图像大小,可取“crop”,输出图像B与输入图像A具有相同的大小,对旋转图像进行剪切以满足要求;可取“loose”,默认是,B包含整个旋转后的图像。
实验2:图像旋转
bird=imread(‘bird.jpg’);
graybird=rgb2gray(bird);
Newgray1=imrotate(graybird,15);
Newgray2=imrotate(graybird,15,‘bilinear’);
figure;
subplot(121),imshow(Newgray1),title(‘旋转15°(最邻近插值)’);
subplot(122),imshow(Newgray2),title(‘旋转15°(双线性插值)’);
imwrite(Newgray1,‘rotatebird1.jpg’);
imwrite(Newgray2,‘rotatebird2.jpg’);

(2)imresize函数
功能:实现图像缩放。
调用格式:
B = imresize(A, SCALE,METHOD)):返回原图A的SCALE倍大小图像B;
B = imresize(A, [NUMROWS NUMCOLS], METHOD)):对原图A进行比例缩放,返回图像B的行数NUMROWS和列数NUMCOLS,如果二者为NaN,表明Matlab自动调整了图像的缩放比例;
[Y, NEWMAP] = imresize(X, MAP, SCALE, METHOD)):对索引图像进行成比例缩放。

实验3:图像缩放
bird1=imread(‘bird.jpg’);
graybird=rgb2gray(bird1);
Newgray3&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值