我们可以在 MATLAB 中旋转填充原始图像背景颜色的图像吗?

erb*_*bal 1 matlab rotation image-rotation

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

我们也可以使用白色背景旋转图像 。

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

特定于我的问题:旋转角度非常小的彩色图像(<=5 度)

kne*_*epp 5

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

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);
Run Code Online (Sandbox Code Playgroud)

摄影师旋转