有些帖子推薦

uj5u.com熱心網友回復:
我撰寫了這個非常基本的演算法來計算旋轉角度。它將第二張影像旋轉 1 度,并計算 0 到 360 度之間每個角度的均方誤差 (MSE)。我們正在尋找的旋轉角度應該對應于最小 MSE。
from PIL import Image, ImageChops
import numpy as np
import math
import matplotlib.pyplot as plt
def rmsdiff(x, y):
"""Calculates the root mean square error (RSME) between two images"""
errors = np.asarray(ImageChops.difference(x, y)) / 255
return math.sqrt(np.mean(np.square(errors)))
im1 = Image.open("1.png")
im2 = Image.open("2.png")
print(im1)
mse = []
for i in range(360):
im2_rot = im2.rotate(i)
mse.append(rmsdiff(im1,im2_rot))
print(mse.index(min(mse))) # outputs 90 degrees
plt.plot(mse)
plt.show()
對于問題中的影像,這是 MSE 圖,最小 MSE 對應于 90 度。

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/510776.html
