使用imrotate不失质量

29日视图(30天)
Milad
Milad 2018年3月12日
回答: Milad2018年3月13日
我的情况我需要能够随机旋转(0 - 359度角)不同的图像。我正在使用 imrotate () 但考虑到图像小和质量是很重要的,我发现失去的图像品质,尤其是在曲线线。我仍然可以旋转图像0,90年、180年和270年度不丢失任何品质,但我想知道如果有任何方式与多度旋转图像不失质量。
8的评论
沃尔特·罗伯森
沃尔特·罗伯森 2018年3月12日
如果旋转图像允许更大,那么你可以使用亚像素类型计算得到任意旋转版本好。
如果它被显示的问题那么hgtransform功能将允许发送原始数据和旋转矩阵的图形引擎将使用反锯齿技术输出。

登录置评。

接受的答案

Milad
Milad 2018年3月13日
(由于人对这个问题的回答和帮助我。总结我决定写自己一个答案。)
旋转似乎总是会降低图像质量,除非我们允许旋转的图像比原始的或只使用90度的倍数。
最好的选择在imrotate()似乎“双三次的”。即使没有调整图像大小它给了一个很好的结果。

更多的答案(2)

图像分析
图像分析 2018年3月12日
是否使用“最近”选项的imresize给你你更喜欢的东西。
2的评论
图像分析
图像分析 2018年3月13日
对不起——意味着imrotate ()。让我知道如果任何更好。否则(如果不是你唯一的选择是upsample图像像他们已经建议。

登录置评。


Guillaume
Guillaume 2018年3月12日
根据沃尔特的评论,唯一的方法可以执行任意的旋转 损失的质量 如果通过增加图像中像素的数量,所以:
supersampled = imresize (yourimage 4);%使用任何规模> 1。imresize使用双三次的默认情况下是最好的。
rotatedimage = imrotate (supersampled someangle,“双三次的”);
6个评论
Guillaume
Guillaume 2018年3月13日
imresize 用于upsample形象。功能,是占据一个像素现在占领更多。因为我们使用“双立方插值”你也获得antialising。你现在有更多的分辨率特性,所以你少松质量当你旋转它。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!