当前位置: 首页 > 平面设计 > 平面设计实战技能 > 平面设计图像处理 > 图像处理几何运算

图像处理几何运算

发布时间:2020年06月19日 01:38:55 来源: 点击量:884

【摘要】图像的几何运算可以使得图像的几何形状发生变化,与点运算不同,几何运算可以看作像素在图像内移动过程,这个过程会改变图像物体对象之间的

图像的几何运算可以使得图像的几何形状发生变化,与点运算不同,几何运算可以看作像素在图像内移动过程,这个过程会改变图像物体对象之间的空间关系,本节就将针对matlab中图像处理几何运算进行介绍:

图像的插值

图像插值是指利用已知邻近像素点的灰度值来产生未知像素点的灰度值,使得原始图像具有更高的分辨率。

interp2函数用于用于对图像进行插值,该函数的调用格式如下:

J=interp2(X,Y,I,X1,Y1);

X,Y表示原始像素值,X1,Y1插入新的像素,I表示原始图像,J表示插值后的图像

示例:对图形进行插值

编写对应的m文件如下:

clear all;

I=imread('cameraman.tif');

subplot(2,2,1)

imshow(I);

title('原始图像');

J1=interp2(double(I),2,'nearest');%%最邻近插值法%%

J2=interp2(double(I),2,'spline'); %%三次样条插值%%

J3=interp2(double(I),2,'linear'); %%线性插值%%

subplot(2,2,2)

imshow(uint8(J1));

title('最邻近插值法');

subplot(2,2,3)

imshow(uint8(J2));

title('三次样条插值法');

subplot(2,2,4)

imshow(uint8(J3));

title('线性插值法');

程序运行结果如下图:

图像的旋转

imrotate函数用于实现图像的旋转,其调用格式如下:

J=imrotate(I,angle,method,bbox);

其中I表示原始图像,angle表示旋转角度,method表示插值方法,bbox表示旋转后的显示方法

示例:对图形进行旋转

编写对应的m文件如下:

clear all;

I=imread('pout.tif');

J=imrotate(I,60,'bilinear');%%对图像旋转60度,利用双线性插值法%%

subplot(1,2,1)

imshow(I);

title('原始图像');

subplot(1,2,2)

imshow(J);

title('旋转后的图像');

程序运行结果如下图:

图像的平移

图像平移变换应用的是直角坐标系的平移变换公式

示例:对图像进行平移

编写对应m文件如下:

clear all;

I=imread('peppers.png');

subplot(1,2,1)

imshow(I);

title('原始图像');

J=double(I);

J1=zeros(size(J));%%构造函数,像素默认为0%%

J2=size(J1);

X=60;

Y=60;

J3(X+1:J2(1),Y+1:J2(2),1:J2(3))=J(1:J2(1)-X,1:J2(2)-Y,1:J2(3));

subplot(1,2,2)

imshow(uint8(J3));

title('平移后图像');

程序运行后结果如下图:

图像的缩放

图像的缩放就是将原始图像进行放大或者缩小,imresize函数用于实现对图像的缩放,其调用格式如下:

J=imresize(I,K,method);

I,J分别表示原始图像,缩放后图像,K表示缩放系数,method插值方法,可以去nearest最邻近插值法,bilinear双线性插值法,bicubic双立方插值法

示例:利用imresize函数对图像进行插值

编写对应m文件如下:

clear all;

I=imread('office_5.jpg');

subplot(2,2,1)

imshow(I);

title('原始图像');

J1=imresize(I,4,'nearest');

subplot(2,2,2)

imshow(uint8(J1))

title('最邻近插值法放大4倍后图像');

J2=imresize(I,0.2,'bilinear');

subplot(2,2,3)

imshow(uint8(J1))

title('双线性插值法缩小0.2倍后图像');

J3=imresize(I,0.2,'bicubic');

subplot(2,2,4)

imshow(uint8(J3))

title('双立方插值法缩小0.2倍后图像');

程序运行结果如下图:

图像的裁剪

图像的裁剪是将我们不需要的部分进行删除,只保留我们感兴趣的部分,imcrop函数用于实现对图像的剪切,该函数调用格式如下:

J=imcrop(I);表示对灰度图进行剪切

J=imcrop(X,map);表示对索引图进行剪切

J=imcrop(RGB);表示对真彩图进行剪切

示例:对索引图进行剪切

clear all

[X,map]=imread('peppers.png');

colormap(map);

subplot(1,2,1)

imshow(X,map);

title('原始索引图');

X2=imcrop(X,map,[50 50 120 130]);%%指定剪切区域大小和位置%%

subplot(1,2,2)

imshow(X2);

title('剪切后索引图');

程序运行结果如下图:

图像的镜像

镜像特点使图像左右颠倒或这上下颠倒,图像镜像分为水平镜像和垂直镜像,flipud函数用于图像进行左右翻转

示例:对图像进行镜像变换

编写对应的m文件如下:

clear all;

I=imread('cameraman.tif');

subplot(2,2,1)

imshow(I);

title('原始图像');

h=size(double(I));

%%水平镜像%%

J1(1:h(1),1:h(2))=I(1:h(1),h(2):-1:1);

subplot(2,2,2)

imshow(uint8(J1));

title('水平镜像后的图像');

%%竖直镜像%%

J2(1:h(1),1:h(2))=I(h(1):-1:1,1:h(2));

subplot(2,2,3)

imshow(uint8(J2));

title('垂直镜像后的图像');

J3(1:h(1),1:h(2))=I(h(1):-1:1,h(2):-1:1);

subplot(2,2,4)

imshow(uint8(J3));

title('对角镜像后的图像');

程序运行结果如下图:

分享到: 编辑:cocomi

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部