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

わかりました、パラメーターを使用してこれを解決できました:

order : int、オプション

スプライン補間の次数。デフォルトは 3 です。次数は 0 ~ 5 の範囲内である必要があります。

ここに画像の説明を入力

お時間をいただきありがとうございます。(:

于 2014-05-23T13:52:34.350 に答える