如何用原始图像的背景填充图像的旋转部分中的黑色?

时间:2015-09-07 08:33:54

标签: matlab image-processing image-rotation

如何在原始图像背景的图像旋转部分填充黑色?请注意,图像仅在位移非常小的情况下被剪切。原始图像和变换图像的大小相同。

这是我尝试过的。有谁能建议更好的方法? MATLAB代码和相应的结果:

A=imread('cameraman.tif');
tform=affine2d([1 0 0 ; 0.05 1 0 ; 0 0 1]);
J=imwarp(A, tform, 'OutputView',imref2d(size(A)));
subplot(1,3,1)
imshow(A),title('Original Image');
subplot(1,3,2)
imshow(J),title('Rotated Image');
zeropixels = J == 0;
J(zeropixels) = A(zeropixels);
subplot(1,3,3)
imshow(J),title('Correct Image');        

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试以下方法: 1)使用具有恒定值的所有像素旋转图像(以确定的方式查找区域)。 2)现在可以使用0作为像素值的像素位置来创建掩模。 3)使用创建的蒙版将原始图像中的像素复制到旋转的图像。

要改善结果(边缘一致性),在替换值之前平滑图像可能会有所帮助。