溫馨提示×

Pillow怎么檢測和糾正圖像的傾斜

小億
123
2024-05-23 15:13:12
欄目: 編程語言

要檢測和糾正圖像的傾斜,可以使用Pillow庫中的rotate方法。首先,需要檢測圖像的傾斜角度,可以通過計(jì)算圖像的邊緣角度來實(shí)現(xiàn)。然后,根據(jù)檢測到的傾斜角度,使用rotate方法將圖像進(jìn)行相應(yīng)角度的旋轉(zhuǎn)。

下面是一個示例代碼,用于檢測和糾正圖像的傾斜:

from PIL import Image
import numpy as np

def detect_skew_angle(image):
    edges = image.filter(ImageFilter.FIND_EDGES)
    edges_array = np.array(edges)
    
    # 計(jì)算圖像的邊緣角度
    angles = np.rad2deg(np.arctan2(edges_array[:,1], edges_array[:,0]))
    skew_angle = np.median(angles)
    
    return skew_angle

def correct_skew(image, angle):
    rotated_image = image.rotate(-angle, resample=Image.BICUBIC, expand=True)
    
    return rotated_image

# 加載圖像
image = Image.open('image.jpg')

# 檢測圖像的傾斜角度
skew_angle = detect_skew_angle(image)

# 糾正圖像的傾斜
corrected_image = correct_skew(image, skew_angle)

# 保存糾正后的圖像
corrected_image.save('corrected_image.jpg')

在這個示例中,首先使用detect_skew_angle函數(shù)來檢測圖像的傾斜角度,然后使用correct_skew函數(shù)來旋轉(zhuǎn)圖像進(jìn)行糾正,最后保存糾正后的圖像。這樣就能夠檢測和糾正圖像的傾斜了。

0