Tôi có 2 hình ảnh thử nghiệm tại đây. Câu hỏi của tôi là, làm thế nào để ánh xạ hình vuông trong hình ảnh đầu tiên đến tứ giác trong hình ảnh thứ hai mà không cắt xén hình ảnh.Cách hiển thị toàn bộ hình ảnh khi sử dụng OpenCV warpPerspective
Hình 1:
Hình 2:
Đây là mã hiện tại của tôi sử dụng OpenCV warpPerspective chức năng.
import cv2
import numpy as np
img1_square_corners = np.float32([[253,211], [563,211], [563,519],[253,519]])
img2_quad_corners = np.float32([[234,197], [520,169], [715,483], [81,472]])
h, mask = cv2.findHomography(img1_square_corners, img2_quad_corners)
im = cv2.imread("image1.png")
out = cv2.warpPerspective(im, h, (800,800))
cv2.imwrite("result.png", out)
Kết quả:
Như bạn có thể thấy, vì dsize = (800.800) tham số trong hàm warpPerspective, tôi không thể có được cái nhìn đầy đủ của hình ảnh 1. Nếu tôi điều chỉnh dsize, hình vuông sẽ không bản đồ chính xác. Có cách nào để thay đổi kích thước hình ảnh đầu ra để tôi có thể nhận được toàn bộ hình ảnh của hình ảnh 1?
bạn có thể xây dựng o n "Nếu tôi điều chỉnh dsize, hình vuông sẽ không ánh xạ chính xác"? Nó bị biến dạng? được dịch? thu nhỏ? ect. Một hình ảnh khác sẽ hữu ích – Hammer