2017-12-20 70 views
6

मेरा कैमरा अंशांकन और विरूपण matrixes अजगर में मार्करों पता नहीं लगा पाया, aruco_calibration_fromimages.exe से प्राप्त:cv2.aruco.detectMarkers

[[3.19439125e+03 0.00000000e+00 1.98509417e+03] 
    [0.00000000e+00 3.20213561e+03 1.55099552e+03] 
    [0.00000000e+00 0.00000000e+00 1.00000000e+00]] 

[[0.1395281 -0.38313647 0.00505558 0.00237535 0.33952515]] 

छवि है, जहां मैं पता लगाने के लिए प्रयास करें:

enter image description here

aruco_simple.exe सफल होता है

fs = cv2.FileStorage("./calib_asus_chess/cam_calib_asus.yml", cv2.FILE_STORAGE_READ) 
cam_mat=fs.getNode("camera_matrix").mat() 
dist_mat=fs.getNode("distortion_coefficients").mat() 
gray=cv2.imread('C:\\Users\\steve\\Dropbox\\Projects\\kinnekt\\laser\\aruco_frames\\shot1.jpg',0) 
adict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_ARUCO_ORIGINAL) 
res = cv2.aruco.detectMarkers(gray,dictionary=adict,cameraMatrix=cam_mat,distCoeff=dist_mat) 

रेस [0] किसी कारण से खाली सरणी है:enter image description here

लेकिन अजगर कोड कुछ भी खोजने के लिए विफल रहता है। पाइथन संस्करण क्यों विफल रहता है? Thanx!

+2

ईमानदार होने के लिए, मैंने 'cv2.aruco.DICT_XXX' नामक सभी झंडे का प्रयास करने के बजाय DICT_4X4_50 का उपयोग करने के लिए अपना कोड बदल सकते हैं, परिणाम वही रहे। सब गलत हैं। – Silencer

+0

यह शायद असंबंधित है, लेकिन पेपर दिखता है (सुनिश्चित नहीं) जैसे कि यह टेबल पर फ्लैट नहीं है। यह आपके अंशांकन परिणाम सटीकता को चोट पहुंचाएगा ... – etarion

+0

सी ++ अरको इस तस्वीर पर सही ढंग से मार्करों का पता लगाता है –

उत्तर

3

आप शायद एक शब्दकोश का उपयोग कर रहे हैं जो आपकी छवि के अनुरूप नहीं है।

DICT_ARUCO_ORIGINAL: मानक ArUco लाइब्रेरी मार्करों documentation cv2.aruco.DICT_ARUCO_ORIGINAL के अनुसार 5x5 है। 1024 मार्कर, 5x5 बिट्स, 0 न्यूनतम दूरी

आपकी छवि में 5x5 के बजाय 6x6 आइकन हैं, यही कारण है कि यह काम नहीं करता है।

आप छवि में शब्दकोश के कुछ मार्करों को आकर्षित करने के लिए फंक्शन drawMarker() का उपयोग कर सकते हैं और फिर उन्हें प्रिंट कर सकते हैं और अपने परीक्षण के लिए उनका उपयोग कर सकते हैं।

उदाहरण के लिए, here आप download DICT_4X4_50 icons कर सकते हैं। आप उन्हें प्रिंट कर सकते हैं और DICT_ARUCO_ORIGINAL

संबंधित मुद्दे