【问题标题】:Can we rotate an image in MATLAB filled with background color of original image?我们可以在 MATLAB 中旋转填充原始图像背景颜色的图像吗?
【发布时间】:2015-03-24 05:18:58
【问题描述】:

默认情况下,MATLAB 函数 imrotate 旋转图像,旋转部分填充黑色。看到这个,http://in.mathworks.com/help/examples/images_product/RotationFitgeotransExample_02.png

我们也可以使用white background 旋转图像。

问题是,我们可以旋转一个填充了原始图像背景的图像(使用或不使用 imrotate)吗?

针对我的问题:旋转角度非常小的彩色图像(

【问题讨论】:

  • 那么你会如何定义这张图片的背景颜色?
  • @knedlsepp:我想用原始图像的背景填充它。
  • 你应该重新表述你的问题。 “填充原始图像的背景颜色。”不等于:“背景应该是原图。”
  • @knedlsepp:已经指定了。请检查。

标签: matlab rotation image-rotation


【解决方案1】:

这是一种简单的方法,我们只需将相同的旋转应用于蒙版,并仅获取旋转图像中与转换后的蒙版相对应的部分。然后我们只是将这些像素叠加在原始图像上。 我忽略了边界上可能的混合。

A = imread('cameraman.tif');
angle = 10;
T = @(I) imrotate(I,angle,'bilinear','crop');
%// Apply transformation
TA = T(A);
mask = T(ones(size(A)))==1;
A(mask) = TA(mask);
%%// Show image
imshow(A);

【讨论】:

  • 感谢您的回答。您的代码提供与原始尺寸相同的图像,并且似乎适用于小角度的旋转。
  • 我们如何才能在不同类型的变换(例如剪切)上达到相同的效果?
【解决方案2】:

您可以使用带有'replicate''both' 选项的padarray() 函数来插入您的图像。然后就可以使用imrotate()函数了。

在下面的代码中,我使用ceil(size(im)/2) 作为焊盘大小;但您可能需要更大的焊盘尺寸来消除黑色部分。我还使用了sS(写作imR(S(1)-s(1):S(1)+s(1), S(2)-s(2):S(2)+s(2), :))来裁剪图像,您可以在其中提取更大的图像部分,只需扩展我在下面用于imR 的索引边界。

试试这个:

im  = imread('cameraman.tif'); %// You can also read a color image 
s   = ceil(size(im)/2);
imP = padarray(im, s(1:2), 'replicate', 'both');
imR = imrotate(imP, 45);
S   = ceil(size(imR)/2);
imF = imR(S(1)-s(1):S(1)+s(1)-1, S(2)-s(2):S(2)+s(2)-1, :); %// Final form
figure, 
subplot(1, 2, 1)
imshow(im); 
title('Original Image')
subplot(1, 2, 2)
imshow(imF);
title('Rotated Image')

这给出了以下输出:

不太好,但比黑色的东西好..

【讨论】:

  • 彩色图像怎么办?
  • 最终图像的大小与原始图像的大小几乎不同(相差2-3像素)。我们能控制它吗?
  • @user11659 - 当然可以。但问题是,如果您希望最终图像的大小与原始图像相同,您应该意识到您会丢失相同的细节,尤其是在角落部分。提取旋转图像的中间部分导致每个边缘有 1 个像素的差异。你知道,元素数量的公式是“(finalValue-initialValue)/increment - 1”,根据这个公式,在我的代码中,减去一个是缺失的。我会编辑我的答案。祝你好运...
  • 非常感谢您的回答。最终图像的静止尺寸不完全相同(差异 1 像素),以防奇数。原始图像中的(高度/宽度)像素。
猜你喜欢
  • 1970-01-01
  • 2020-08-02
  • 2015-05-09
  • 2016-10-05
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 2013-04-02
相关资源
最近更新 更多