2

正如标题所说,我正在尝试使用 Scipy 包在 Python 中旋转图像。我收到一个具有特定尺寸的图像作为输入,例如 512 x 512,我必须对其进行一些旋转并裁剪它的一部分。所以,这是我到目前为止的代码:

for i in range(0, 90, 10):
    image_base = Dt.Data(open_image=True, rotation=i)
    Dv.DataVisualization.plot_data(image_base, '../Visualizations/ProcessedImages/'+str(i))

def plot_data(data, file_path):
    """
    Plot the data
    :param data : the data to be plotted
    :param file_path : the name of the file
    """
    output = Image.fromarray(numpy.uint8(data.data * 255))
    output.save(file_path + '.png', 'PNG')

class Data(object):
    def __init__(self, open_image=False, rotation=None):
        """
        The Data constructor
        """
        self.data = misc.imread('../TestImages/board.jpg', flatten=True)
        self.data /= 255.0
        x, y = self.data.shape

        if rotation != 0:
            self.data = ndimage.rotate(self.data, rotation, reshape=False)
            self.data = self.data[x / 4: - x / 4, y / 4: - y / 4]

这是我的原始图像(256x256):

在此处输入图像描述

这些是我得到的一些输出(128x128):

在此处输入图像描述 在此处输入图像描述

如您所见,边缘非常糟糕,这对于我必须做的事情是不可接受的。我想知道为什么会发生这种情况以及是否有办法摆脱它。

先感谢您。

4

1 回答 1

1

好的,我能够使用参数解决这个问题:

顺序:int,可选

样条插值的阶数,默认为 3。阶数必须在 0-5 范围内。

在此处输入图像描述

感谢您的时间。(:

于 2014-05-23T13:52:34.350 回答