[Python] OpenCV CameraCalibratie Probleem - Project

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Bas_Sl
  • Registratie: Februari 2014
  • Laatst online: 03-04-2020
Beste mede Tweakers,

Ik doe een project op school over zelfrijdende auto's. Ik wil met OpenCV een auto laten rijden met dit progamma in combinatie met de Rasberry Pi op de auto. Die verbonden is met de iMac.

Het probleem waar ik tegen aan loop is zoals u mischien al in de titel kan lezen is dat ik tegen een probleem aanloop met het configureren van de camera. Ik heb heel google al gezocht. Maar kan geen oplossing vinden. Ik hoop dat jullie me kunnen helpen.

Python Code
import cv2
import numpy as np
import glob

# termination criteria
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)

# 6x9 chess board, prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)
object_point = np.zeros((6*9, 3), np.float32)
object_point[:, :2] = np.mgrid[0:9, 0:6].T.reshape(-1, 2)

# 3d point in real world space
object_points = []
# 2d points in image plane
image_points = []
h, w = 0, 0

images = glob.glob('chess_board/*.jpg')

for file_name in images:
image = cv2.imread(file_name)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
h, w = gray.shape[:2]

# find chess board corners
ret, corners = cv2.findChessboardCorners(gray, (9, 6), None)

# add object points, image points
if ret:
object_points.append(object_point)
cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1), criteria)
image_points.append(corners)

# draw and display the corners
cv2.drawChessboardCorners(image, (9, 6), corners, ret)
cv2.imshow('image', image)
cv2.waitKey(500)

# calibration
retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(object_points, image_points, (w, h), None, None)

print "camera matrix:\n", cameraMatrix

# pi camera intrinsic parameters
ay = cameraMatrix[1, 1]
u0 = cameraMatrix[0, 2]
v0 = cameraMatrix[1, 2]
print "Ay:", ay
print "u0:", u0
print "v0:", v0

cv2.destroyAllWindows()
Foutcode als je het bestand runt
cd '/Users/bas/Desktop/' && '/usr/local/bin/pythonw' '/Users/bas/Desktop/picam_calibratio.py' && echo Exit status: $? && exit 1
imac:~ bas$ cd '/Users/bas/Desktop/' && '/usr/local/bin/pythonw' '/Users/bas/Desktop/picam_calibratio.py' && echo Exit status: $? && exit 1
OpenCV Error: Assertion failed (nimages > 0) in calibrateCamera, file /Users/bas/opencv/modules/calib3d/src/calibration.cpp, line 3357
Traceback (most recent call last):
File "/Users/bas/Desktop/picam_calibratio.py", line 47, in
retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(object_points, image_points, (w, h), None, None)
cv2.error: /Users/bas/opencv/modules/calib3d/src/calibration.cpp:3357: error: (-215) nimages > 0 in function calibrateCamera
Het is voor een cijfer dus dit is best belangrijk voor me dat dit lukt. Ik hoop dat jullie me kunnen helpen.

Alvast Bedankt,
Bas

Alle reacties


Acties:
  • 0 Henk 'm!

  • AlphaRomeo
  • Registratie: Maart 2007
  • Laatst online: 17:01

AlphaRomeo

FP PowerMod
OpenCV Error: Assertion failed (nimages > 0) in calibrateCamera,
Blijkbaar wordt er verwacht dat er images zijn, maar die zijn er nog niet, zijn er al wel beelden aangeboden aan het framework?

Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 09-10 13:33
Graag de code even tussen [ code=puthon ] [ /code] tags plaatsen. En je hebt de code zo te zien hier vandaan:
http://opencv-python-tutr...ibration.html#calibration?

Zo ja, dan zie je dat je append() bij image_points niet goed gaat. Hier moet het return object van cv2.cornerSubPix() in komen... Zie de corners2 variabele uit het voorbeeld.

Beter goed bedacht dan slecht gejat zullen we maar zeggen :+

[ Voor 24% gewijzigd door Morrar op 01-02-2017 19:22 ]