%%------------------------Matlab图像的平移,旋转,缩放,裁剪-------------------------------
%-------------------头文件-----------------------------
clc ; %清屏幕
clear ; %删除所有的变量
close all ; %将所有打开的图片关掉
%--------------------图像平移 imtranslate--------------------------
A = imread('1.jpg') ;
subplot( 1, 3, 1 ) ;
imshow( A ) ;
title( '原图' ) ;
%向下平移135个像素,向右平移125个像素 (数值为负数时移动方向相反)
B = imtranslate( A, [ 135, 125 ] ) ;
subplot( 1, 3, 2 ) ;
imshow( B ) ;
title( '图1' ) ;
%默认情况下,imtranslate是在原始图像的边界(或限制)内显示转换后的图像。这导致某些移位的图像被剪切。设置'OutputView'参数为'full',可以防止剪切平移的图像。
C = imtranslate( A, [ 135, 125 ], 'OutputView', 'full' ) ;
subplot( 1, 3, 3 ) ;
imshow( C ) ;
title( '图2' ) ;
效果对比图文章来源地址https://www.toymoban.com/news/detail-444139.html
%----------------------图像旋转 imrotate----------------------------
X = imread('3.jpg');
subplot( 1, 3, 1 ) ;
imshow( X ) ;
title( '原图' ) ;
Y1 = imrotate( X, 30 ) ; %将图像逆时针旋转30° (数值为负数时旋转方向相反)
subplot( 1, 3, 2 ) ;
imshow( Y1 ) ;
title( '图1' ) ;
Y2 = imrotate( X, 30, 'crop' ) ; %旋转30°,并剪切图像,使得到的图像和原图像大小一致
subplot( 1, 3, 3 ) ;
imshow( Y2 ) ;
title( '图2' ) ;
效果对比图
%-------------------图像缩放 imresize------------------------------
M = imread('2.jpg');
figure ; %图像的缩放不能利用图形窗口分割显示在一个窗口,所以用figure新建窗口
imshow( M ) ;
title( '原图' ) ;
N1 = imresize( M, 2 ) ; %将图像放大2倍
figure ;
imshow( N1 ) ;
title( '图1' ) ;
N2 = imresize( M, 0.5 ) ; %将图像放大0.5倍
figure ;
imshow( N2 ) ;
title( '图2' ) ;
效果对比图
%---------------------------图像裁剪 imcrop--------------------
P = imread('4.jpg');
% 设置裁剪区域area,四个数值分别表示裁剪区域的左上顶点坐标[50,20],宽度150,高度100
%图像本身以左上角顶点为原点向下向右建立坐标系
area = [50, 20 ,150, 100] ;
subplot( 1, 2, 1 ) ;
imshow( P ) ;
title( '原图' ) ;
rectangle('Position', area, 'LineWidth', 2, 'EdgeColor', 'r') %用rectangle创建矩形,显示剪切区域
Q = imcrop( P, area ) ; %裁剪
subplot( 1, 2, 2 ) ;
imshow( Q ) ;
title( '图1' ) ;
%如不加参数area,将使用鼠标在原图像上划矩形框的方法来实现图像的剪裁,双击确定后所划矩形框内的图像将在新窗口中输出
R = imcrop( P ) ;
figure;
imshow( R ) ;
title( '自由裁剪' ) ;
效果对比图
%-------------------图像翻转 flip------------------
H = imread('5.jpg');
subplot( 1, 3, 1 ) ;
imshow( H ) ;
title( '原图' ) ;
T1 = flip( H , 1 ) ; %参数1表示上下翻转
subplot( 1, 3, 2 ) ;
imshow( T1 ) ;
title( '上下翻转' ) ;
T2 = flip( H , 2 ) ; %参数2表示左右翻转
subplot( 1, 3, 3) ;
imshow( T2 ) ;
title( '左右翻转' ) ;文章来源:https://www.toymoban.com/news/detail-444139.html
效果对比图
到了这里,关于Matlab图像的平移,旋转,缩放,裁剪的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!