matlab 图像的几何变换

图像如果向前映射有效率低,不完成等缺点,所以一般我们使用向后映射。

(1)平移:

I = imread(‘apostles.jpg‘);

I = double(I);

B = zeros(size(I));

H = size(I);

move_x = 100;

move_y = 150;

B(move_y + 1:H(1), move_x+1:H(2), 1:H(3))=...

I(1:H(1)-move_y, 1:H(2) - move_x, 1:H(3));

subplot(1,2,1),subimage(uint8(I))

title(‘原图像‘)

subplot(1,2,2),subimage(uint8(B))

title(‘平移变换‘);

I = imread(‘apostles.jpg‘);

se=translate(strel(1),[150 100]);

B = imdilate(I,se);

figure;

subplot(1,2,1),subimage(I);

title(‘原图像‘);

subplot(1,2,2),subimage(B);

title(‘平移变换‘);

(2)镜像:

I = imread(‘apostles.jpg‘);

[height, width, dim]=size(I);

%水平镜像变换

tform = maketform(‘affine‘,[-1 0 0;0 1 0; width 0 1]);

B=imtransform(I, tform, ‘nearest‘);

%垂直镜像变换

tform2 = maketform(‘affine‘, [1 0 0; 0 -1 0; 0 height 1]);

C=imtransform(I, tform2, ‘nearest‘);

subplot(1,3,1),imshow(I);

title(‘原图像‘);

subplot(1,3,2),imshow(B);

title(‘水平图像‘);

subplot(1,3,3),imshow(C);

title(‘垂直图像‘);

A = imread(‘apostles.jpg‘);

A = double(A);

figure(1), imshow(uint8(A));

H = size(A);

figure(2),B(1:H(1),1:H(2),1:H(3))=A(H(1):-1:1,1:H(2),1:H(3));%垂直镜像

imshow(uint8(B));

figure(3),C(1:H(1),1:H(2),1:H(3))=A(1:H(1),H(2):-1:1,1:H(3));%水平镜像

imshow(uint8(C));

(3)转置:

I = imread(‘apostles.jpg‘);

tform = maketform(‘affine‘,[0 1 0; 1 0 0; 0 0 1]);%定义转置矩阵

B = imtransform(I, tform, ‘nearest‘);

subplot(1,2,1),imshow(I)

title(‘原图像‘);

subplot(1,2,2),imshow(B)

title(‘转置图像‘);

(4)缩放:

I = imread(‘C:\apostles.jpg‘);

A = imresize(I, 1.5, ‘nearest‘);%最近插值法

B = imresize(I, 1.5, ‘bilinear‘);%双线性插值法

C = imresize(I, 1.5, ‘bicubic‘);%二次立方插值法

subplot(2,2,1), imshow(I), title(‘original‘);

subplot(2,2,2), imshow(A), title(‘nearest‘);

subplot(2,2,3), imshow(B), title(‘bilinear‘);

subplot(2,2,4), imshow(C), title(‘bicubic‘);

A = imresize(I, [a b], ‘nearest‘);%不同方向比例差值

(5)旋转:

I = imread(‘apostles.jpg‘);

A = imrotate(I, 30, ‘nearest‘);%旋转30度,最邻近插值

figure(1),imshow(A)

B = imrotate(I, 45, ‘bilinear‘,‘loose‘);%旋转45度,二次线性插值

figure(2),imshow(B)

时间: 2024-10-14 12:25:34

matlab 图像的几何变换的相关文章

OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)

在OpenCV2:图像的几何变换,平移.镜像.缩放.旋转(1)主要介绍了图像变换中的向前映射.向后映射.处理变换过程中浮点坐标像素值的插值算法,并且基于OpenCV2实现了两个简单的几何变换:平移和镜像变换.本文主要稍微复杂点的两个几何变换:缩放和旋转. 1.图像缩放 图像的缩放主要用于改变图像的大小,缩放后图像的图像的宽度和高度会发生变化.水平缩放系数,控制图像宽度的缩放,其值为1,则图像的宽度不变:垂直缩放系数控制图像高度的缩放,其值为1,则图像的高度不变.如果水平缩放系数和垂直缩放系数不相

Python下opencv使用笔记(三)(图像的几何变换)

写在之前 二维与三维图像的几何变换在计算机图形学上有重要的应用,包括现在的许多图像界面的切换.二维与三维游戏画面控制等等都涉及到图像几何变换,就比如说在三维游戏中,控制角色三维移动的时候,画面是要跟着移动的,那么怎么移动,怎么让上一时刻的画面移动到这一时刻,这都是根据了你的移动量,然后找到三维坐标之间的对应关系,用这一时刻的坐标替换到上一时刻的坐标像素值实现图像的切换. 图像的几何变换主要包括:平移.扩大与缩小.旋转.仿射.透视等等.图像变换是建立在矩阵运算基础上的,通过矩阵运算可以很快的找到对

OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)

图像的几何变换是在不改变图像内容的前提下对图像像素的进行空间几何变换,主要包括了图像的平移变换.镜像变换.缩放和旋转等.本文首先介绍了图像几何变换的一些基本概念,然后再OpenCV2下实现了图像的平移变换.镜像变换.缩放以及旋转,最后介绍几何的组合变换(平移+缩放+旋转). 1.几何变换的基本概念 1.1 坐标映射关系 图像的几何变换改变了像素的空间位置,建立一种原图像像素与变换后图像像素之间的映射关系,通过这种映射关系能够实现下面两种计算: 原图像任意像素计算该像素在变换后图像的坐标位置 变换

Matlab图像彩色转灰色

时间:2014年5月7日星期三 网上找的程序,实现图像彩色转灰色: I1=imread('C:\Users\Yano\Desktop\matlab\test1\4.jpg'); I2=rgb2gray(I1); figure(1) imshow(I1); title('源图像'); figure(2) imshow(I2); title('灰度图像'); 自己拍的几张图片,通过此程序转换成功: Matlab图像彩色转灰色

matlab 图像和 opencv 图像的相互转换

matlab可以生成C++代码, 但是在涉及图像数据的时候,要注意数据格式的转换. p { margin-bottom: 0.1in; line-height: 120% } a:link { } 1. Matlab图像数据在内存中的存放顺序是R通道图,G通道图,B通道图.对于每个通道,数据存放是先列后行. 2. C++中,opencv Mat对象的数据存放顺序是先行后列,对于每个像素点,分别有r,g,b三个值. 3 . Opencv Mat 转matlab格式数据 对于opencv Mat图像

第三章 图像的几何变换

VC++图像处理程序设计(第1版)    杨淑莹 编著     边奠英 主审 第二章 图像的几何变换 Joanna-In-Hdu&Hust 手工打,印象更深刻 使用工具 VS2010 mfc 声明:这一章开始的代码都是本人实际演示过的,按照本人的操作可以运行.程序并没有很强的健壮性,只能对正确的操作做出符合预期的响应. 整本书的代码文件.测试图片和程序运行exe请在这里下载:https://github.com/CaptainLYN/VCPictureProcessing 这一章中如之前一样,会

【opencv基础】图像的几何变换

参考 1. 图像的几何变换-平移和镜像: 2.图像的几何变换-缩放和旋转:. 完 原文地址:https://www.cnblogs.com/happyamyhope/p/10242546.html

数字图像处理——图像的几何变换

数字图像处理--图像的几何变换 几何变换不改变像素值,而是改变像素所在的位置. 它包括两个独立的算法: 空间变换算法 插值算法 分类 从图像类型上 二维图像 三维图像 从三维到二维平面投影变换 从变换的性质 基本变换:平移,比例缩放,旋转,镜像,错切 复合变换 图像的平移 在同一坐标系下,设\(P_0(x_0,y_0)\) ,经过水平偏移量\(\triangle x\) ,垂直偏移量\(\triangle y\),得到平移之后的坐标: \[ \begin{cases} x = x_0 + \tr

MATLAB 图像归一化

matlab图像处理为什么要归一化和如何归一化一.为什么归一化1.   基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响.也就是转换成唯一的标准形式以抵抗仿射变换 图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的. 因为我们这次的图片有好多都是一个系列的,所以老师把这个也作为我研究的一个方向. 我们主要要通过归一化减小医学图片由于光线不均匀造成的干扰.2.matlab里图像数据有时候必须是浮