Steve用MATLAB进行图像处理

图像处理概念,算法,和MATLAB

空间转换:用imtransform控制输入和输出网格

这个函数imtransform有几个可选参数,允许您微调其行为。今天的主题是关于让你控制输入图像在输入空间中的位置的参数,以及输出空间像素网格的位置和间距。

内容

输入图像的位置

imtransform假设一个M × N的输入图像存在于一个水平范围为0.5到M+0.5,垂直范围为0.5到N+0.5的矩形的输入空间中。

我=棋盘(1、4);imshow(我“initialmag”“健康”)轴盒子集(gca),“XTick”, 8 [1],“YTick”, [1 8]) xlabel(“u轴”) ylabel (“v轴”)标题(“8-by-8形象”

如果你想让输入图像在其他位置呢?例如,有时将图像的中心放置在输入空间原点是很方便的。

% imshow不知道u-v空间,只知道x-y空间,所以它的参数%称为XData和YData。imshow(我“XData”(-3.5 - 3.5),“YData”(-3.5 - 3.5),“initialmag”“健康”)轴盒子集(gca),“XTick”, [-3.5 0 3.5],“YTick”, [-3.5 0 3.5]) xlabel(“u轴”) ylabel (“v轴”

您可以将imtransform的输入图像放置在您想要的位置uv通过指定UData和VData参数。UData是一个双元素向量。它的第一个值是u输入图像第一列的-坐标。它的第二个值是u最后一列的-坐标。类似地,VData是一个包含v输入图像的第一行和最后一行的坐标。

要将m × n图像的中心放置在原点,指定UData To be[1 n] - (n +1)/2和VData[1 m] - (m +1)/2

输出空间像素网格

imtransform确定输出空间中转换后图像的边界矩形,然后在该矩形上覆盖像素网格。输出网格中的像素与输入图像像素的大小相同。

通过在imtransform调用中指定XData、YData和size参数,可以修改网格位置和像素大小。

XData和YData类似于UData和VData。XData是一个双元素向量,其中包含x输出图像的第一列和最后一列的坐标。YData是一个双元素向量,包含y输出图像的第一行和最后一行的坐标。

Size参数是一个双元素向量,指定输出空间网格中有多少行和列。

例子

这是你的任务:定位一个以原点为中心,在水平和垂直方向上从-1到1的输入图像。把它旋转45度。只在水平和垂直范围为-0.8到0.8的正方形内计算输出图像。此外,计算输出图像时只使用八分之一的像素(在每个方向上)作为输入图像。

我= imread (“pout.tif”);imshow(我)
T = [1 -sin(/4) 0;罪(π/ 4)1 0;0 0 1);tform = maketform (仿射的T);Udata = [-1 1];Vdata = [-1 1];Xdata = [-0.8 0.8];Ydata = [-0.8 0.8];output_size =圆(大小(我)/ 8);J = imtransform(I, tform,“UData”udata,“VData”vdata,...“XData”xdata,“YData”ydata,“大小”, output_size);imshow (J)

在下一篇文章中,我将演示如何定义和应用自定义空间转换。这篇文章将包括更多的例子来说明UData, VData, XData和YData的使用。




发布与MATLAB®7.2

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。