如何使用MATLAB平滑因仿射变换而产生的黑边?

时间:2015-10-11 06:07:45

标签: matlab rotation

为了去除图像两侧的黑色部分(由于仿射变换而产生),我添加了具有90度角旋转图像的原始图像。在存在黑色区域的某些地方,生成的图像并不完全平滑。我寻求的最终目标是去除由于仿射变换而在边界附近产生的黑色部分。 MATLAB代码和结果图片如下所示:

I=imread('cg.jpg');
figure,imshow(I),title('Original');
tform=affine2d([1 0 0 ; 0.05 1 0 ; 0 0 1]);
II=imwarp(I, tform);
figure,imshow(II),title('Affine');
zeropixels = II == 0;
III=imrotate(II,90,'bilinear');
II(zeropixels) = III(zeropixels);
figure,imshow(III),title('Rotated');
figure,imshow(II),title('Corrected');

有人可以建议如何平滑最终图像或提出更好的解决方案吗?请注意,我项目中使用的实际图像是带有一些内容的彩色图像。

enter image description here [enter image description here [enter image description here

0 个答案:

没有答案