Tôi đang cố gắng sử dụng các liên kết python OpenCV 2.3
để hiệu chỉnh máy ảnh. Tôi đã sử dụng các dữ liệu dưới đây trong MATLAB và hiệu chuẩn làm việc, nhưng tôi dường như không thể làm cho nó hoạt động trong OpenCV. Ma trận máy ảnh tôi thiết lập như một dự đoán ban đầu rất gần với câu trả lời được tính từ hộp công cụ MATLAB.Hiệu chỉnh máy ảnh OpenCV 2.3
import cv2
import numpy as np
obj_points = [[-9.7,3.0,4.5],[-11.1,0.5,3.1],[-8.5,0.9,2.4],[-5.8,4.4,2.7],[-4.8,1.5,0.2],[-6.7,-1.6,-0.4],[-8.7,-3.3,-0.6],[-4.3,-1.2,-2.4],[-12.4,-2.3,0.9], [-14.1,-3.8,-0.6],[-18.9,2.9,2.9],[-14.6,2.3,4.6],[-16.0,0.8,3.0],[-18.9,-0.1,0.3], [-16.3,-1.7,0.5],[-18.6,-2.7,-2.2]]
img_points = [[993.0,623.0],[942.0,705.0],[1023.0,720.0],[1116.0,645.0],[1136.0,764.0],[1071.0,847.0],[1003.0,885.0],[1142.0,887.0],[886.0,816.0],[827.0,883.0],[710.0,636.0],[837.0,621.0],[789.0,688.0],[699.0,759.0],[768.0,800.0],[697.0,873.0]]
obj_points = np.array(obj_points)
img_points = np.array(img_points)
w = 1680
h = 1050
size = (w,h)
camera_matrix = np.zeros((3, 3))
camera_matrix[0,0]= 2200.0
camera_matrix[1,1]= 2200.0
camera_matrix[2,2]=1.0
camera_matrix[2,0]=750.0
camera_matrix[2,1]=750.0
dist_coefs = np.zeros(4)
results = cv2.calibrateCamera(obj_points, img_points,size,
camera_matrix, dist_coefs)
Bạn có ý nghĩa gì bởi "dường như không làm cho nó hoạt động" - nó có gây ra lỗi nào đó không? (trong trường hợp đó, lỗi gì?) Hoặc nó chạy và chỉ không cung cấp cho bạn hệ số bạn mong đợi? –