图像的几何变换(matlab)

这篇具有很好参考价值的文章主要介绍了图像的几何变换(matlab)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.引言:

图像的几何变换是将一幅图像中的坐标映射到另一幅图片中的新坐标位置,它不改变图像的像素值,只改变像素所在的几何位置,使原图像按照需要产生位置、形状和大小的变换。

2.图像的平移:

将一幅图片上的所有点都按照给定的偏移量在水平方向沿着X轴,在垂直方向沿着Y轴移动,平移后的大小相同。

imtranslate函数平移图像

>> I = imread('E:\persional\matlab\images\Fig0809(a).bmp');
se = imtranslate(I, [50 140]);%将一个平面结构化元素分别向下和向右移动
subplot(121);imshow(I), title('原图')
subplot(122), imshow(se), title('移动后的图像');

imdilate膨胀函数平移图像

I = imread('E:\persional\matlab\images\Fig0809(a).bmp');
se = translate(strel(1), [50 140]);%将一个平面结构化元素分别向下和向右移动
J = imdilate(I,se);%利用膨胀函数平移图像
subplot(121);imshow(I), title('原图')
subplot(122), imshow(J), title('移动后的图像');

图像的几何变换(matlab)

图像的滤镜:

图像的镜像分为两种垂直镜像和水平镜像
水平镜像:(x0,y0) ------ x1 = M - x0 y1 = y0;
垂直水平:(x0,y0) ------ x1 = x0 y1 = M - y0;

Z = flipdim():

close all;clear all;clc; 
I=imread('E:\persional\matlab\images\Fig0809(a).bmp'); 
J1=flipdim(I,1);
J2=flipdim(I,2);
J3=flipdim(I,3);
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
//set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置
figure,
subplot(1,2,1),imshow(I) ;
subplot(1,2,2),imshow(J1);
figure,
subplot(1,2,1),imshow(J2);
subplot(1,2,2),imshow(J3);

图像的几何变换(matlab)
图像的几何变换(matlab)

图像的放缩

图像放缩是指给定的图像在X轴方向按比例缩放fx,在Y轴方向按比例缩放fy,图像比例缩放会改变原始图像像素间的相对位置,产生几何畸变。
1.B = imresize(A,m): m>1,放大;0<m<1,缩小;
2.B = imresize(A,[mrows,ncols]): [mrows,ncols]说明缩放后的行和列,如果位NaN,函数会按照输入图像A丛横比生成ncols或mrows的数;
3.[B,newmap] = (A,map,m): m按比例缩放;也可以是 [mrows,ncols];
4.[…] = imresize(…,method): method可选:
插值方法的类型:'nearest’最近邻插值;'bilinear’双线性插值、'bicubic’双三次插值
插值的核函数:'box’Box 型核函数、'triangle’三角型核函数('bicubic’相同)、'Cubic’立方体核函数(‘bicubic相同’)、'lanczos2’Lanczos-2核函数和’lanczos3’Lanczos-3核函数。
5.[…] = imreadsize(…,method):通过设置paramter的值value,控制图像的缩放特性,如下图所示:
图像的几何变换(matlab)

close all;clear all;clc;
[X,map] = imread('E:\persional\matlab\images\Fig0809(a).bmp');
J1 = imresize(X,0.25);
J2 = imresize(X,3.5);
J3 = imresize(X,[64,40]);%放缩后的图像行列比例
J4 = imresize(X,[64,NaN]);
J5 = imresize(X,1.6,'bilinear');%设置插值法
J6 = imresize(X,1.6,'triangle');
figure,
subplot(221),imshow(I);
subplot(222),imshow(J1);
subplot(223),imshow(I1)
subplot(224),imshow(J2)

图像的几何变换(matlab)

图像的转置:

图像的转置即行列坐标互换,例如:点(x0,y0)转换后的新坐标点(x1,y1)数学表达式:x1 = x0 ; y1 = y0;进行图像转置后,大小会发生改变:

function J = transp(I)
[M,N,G] = size(I);
I = im2double(I);
J = ones(N,M,G);
for i = 1:M
    for j = 1:N
        J(j,i,:) = I(i,j,:);
    end
end
%调用函数
close all;clear all;clc;
I=imread('E:\persional\matlab\images\Fig0809(a).bmp'); 					
J1=transp(I);										
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置
figure,
subplot(221),imshow(I);
subplot(222),imshow(J1);

图像的几何变换(matlab)

图像的旋转:

图像的旋转变换属于图像的位置变换,通常以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。旋转后,图像的大小一般会改变。

B = imrotate(A,angle,method,bbox) — angle:角度;method:'nearest’最近邻插值;'bilinear’双线性插值、'bicubic’双三次插值;bbox:返回图像的大小(‘crop’,‘loose’)

>> I=imread('E:\persional\matlab\images\Fig0809(a).bmp');
>> J1 = imrotate(I,30);
>> J2 = imrotate(I,-30);
>> J3 = imrotate(I,30,'bicubic','crop');
>> J4 = imrotate(I,-30,'bicubic','loose');
>> figure,
>> subplot(221),imshow(J1);
>> subplot(222),imshow(J2);
>> subplot(223),imshow(J3);
>> subplot(224),imshow(J4);

图像的几何变换(matlab)

图像的剪切:

对图像部分感兴趣的地方进行剪切;
X1 = imcrop(I,[xmin,ymin,width,height])
[X1,map] = (…)
X1 = imcrop(I,map)
[X1,Y1,[xmin,ymin,width,height]] = imcrop(…)

>>[A,map]=imread('E:\persional\matlab\images\Fig0809(a).bmp');
>> rect = [75 68 130 112];
>> X1 = imcrop(A,rect);
>> figure,
>> subplot,imshow(121),imshow(X1);

>>[A,rect] = imcrop(A);%选择性剪切
>>subplot,imshow(121),imshow(A);

图像的几何变换(matlab)

图像的变换:

可以自定义多种类型的空间变换(平移、缩放、旋转、剪切)、投影变换。

B = imtransform(A,TFORM,INTERP)

TFORM:通过maketform()返回;
INTERP:'nearest’最近邻插值;'bilinear’双线性插值、'bicubic’双三次插值。

设原图像f(x,y)和变换后图像g(x’,y’)
(x’,y’) = T(x,y)
x’ = a0x+a1x+a2;
y’ = b0y+b1y+b2;
写成3x3矩阵进行结构体设计;

图像的几何变换(matlab)

>> [A,map]=imread('E:\persional\matlab\images\Fig0809(a).bmp');
>> Ta = maketform('affine',[cosd(30),-sind(30),0;sind(30),cosd(30) 0;0 0 1])%旋转结构体
>> Ia = imtransform(I,Ta);
>> Tb = maketform('affine',[5 0 0;0 10.5 0;0 0 1]);%平移结构体
>> Ib = imtransform(I,Tb);
>> xform = [0.5 0 0;0 0.5 0;0 0 1];
>> Tc = maketform('affine',xform);%缩放结构体
>>> Ic = imtransform(I,Tc,'XData',[1 (size(I,2)+xform(3,1))],'YData',[1 size(I,1)+xform(3,2)],'FillValues',255);
>> Td = maketform('affine',[1 4 0;2 1 0;0 0 1]);%剪切结构体
>> Id = imtransform(I,Td,'FillValues',255);
>>> figure,
>> subplot(221),imshow(Ia),axis on;
>> subplot(222),imshow(Ib),axis on;
>> subplot(223),imshow(Ic),axis on;
>> subplot(224),imshow(Id),axis on;

图像的几何变换(matlab)文章来源地址https://www.toymoban.com/news/detail-456264.html

到了这里,关于图像的几何变换(matlab)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【OpenCV • c++】图像几何变换 | 图像平移

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月16日
    浏览(39)
  • 【OpenCV • c++】图像几何变换 | 图像旋转

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪   图像的几何变换是指在不改变图像像素值的前提下对图像像素进

    2024年02月16日
    浏览(47)
  • 六、图像的几何变换

    在计算机视觉中,图像几何变换是指对图像进行平移、旋转、缩放、仿射变换和镜像变换等操作,以改变图像的位置、尺寸、形状或视角,而不改变图像的内容。这些变换在图像处理、模式识别、机器人视觉、医学影像处理等领域具有广泛的应用。通过图像几何变换,可以实

    2024年02月19日
    浏览(25)
  • (opencv)图像几何变换——缩放

    图像缩放是指将图像的尺寸变小或变大的过程,也就是减少或增加源图像数据的像素个数。图像缩放一定程度上会造成信息的丢失,因此需要考虑适宜的方法进行操作。 下面介绍两种常用的图像缩放方法的原理及实现 1.基于等间隔提取图像缩放 等间隔提取图像缩放是通过对

    2024年02月16日
    浏览(38)
  • (opencv)图像几何变换——平移

    图像的平移操作是将图像的所有像素坐标进行水平或垂直方向移动,也就是将所有像素点按照给定的偏移量在水平方向沿x轴、垂直方向上沿y轴移动。平移变换分为两种类型:图像大小变化与图像大小不变。第一种类型保证图像平移的完整信息,第二种图像导致原始图像的部

    2024年02月08日
    浏览(44)
  • 【OpenCV • c++】图像几何变换 | 图像坐标映射

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪   图像的几何变换是指在不改变图像像素值的前提下对图像像素进

    2024年02月12日
    浏览(50)
  • python图像处理实战(二)—图像几何变换

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 前言       图像几何变换就是在不改变图像像素值的前提

    2024年02月09日
    浏览(60)
  • python图像处理实战(三)—图像几何变换

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 前言       图像几何变换就是在不改变图像像素值的前提

    2024年02月11日
    浏览(57)
  • Python用来处理图像几何变换

    Python用来处理图像几何变换的方法供大家学习和参考。

    2024年02月15日
    浏览(41)
  • 【OpenCV入门】第七部分——图像的几何变换

    通过resize()方法可以随意更改图像的大小比例: src: 原始图像 dsize: 输出图像的大小,格式为(宽,高),单位为像素 fx: (可选)水平方向的缩放比例 fy: (可选)竖直方向的缩放比例 interpolation: (可选)缩放的插值方式,在图像缩小或放大时需要删减或补充像素,该

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包