Matlab图像的平移,旋转,缩放,裁剪 |
您所在的位置:网站首页 › 图像的缩放 › Matlab图像的平移,旋转,缩放,裁剪 |
%%------------------------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' ) ; 效果对比图 %----------------------图像旋转 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( '左右翻转' ) ; 效果对比图 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |