2015-11-03 317 views
2

我有一臺攝像機指向上面的禪園。但是,相機固定在側面而不是正上方。因此,圖像看起來像這樣(注意矩形的傾斜形狀): enter image description hereOpenCV - 調整傾斜角度的照片(傾斜)

有沒有辦法處理圖像,以便沙區看上去或多或少像一個完美的正方形?

cap = cv2.VideoCapture(0) 
while True: 
    ret, img = cap.read() 
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    img = cv2.flip(img,0) 
    cv2.imshow('Cropping', img) 
    if cv2.waitKey(500) & 0xff == 27: 
     cv2.destroyAllWindows() 
     break 

非常感謝。

回答

1

您可以對圖像進行透視轉換。這裏是一個讓你在球場第一拍:

import cv2 
import numpy as np 

img = cv2.imread('zen.jpg') 
rows, cols, ch = img.shape  
pts1 = np.float32(
    [[cols*.25, rows*.95], 
    [cols*.90, rows*.95], 
    [cols*.10, 0], 
    [cols,  0]] 
) 
pts2 = np.float32(
    [[cols*0.1, rows], 
    [cols,  rows], 
    [0,  0], 
    [cols,  0]] 
)  
M = cv2.getPerspectiveTransform(pts1,pts2) 
dst = cv2.warpPerspective(img, M, (cols, rows)) 
cv2.imshow('My Zen Garden', dst) 
cv2.imwrite('zen.jpg', dst) 
cv2.waitKey() 

enter image description here

您可以用數字撥弄多,但你的想法。

以下是一些在線示例。第一個環節具有的掛鉤點有用的劇情有關聯的變換矩陣: