Skip to content

Commit 168c837

Browse files
authored
Uploading Google Colabs for CV
1 parent 2299c80 commit 168c837

File tree

4 files changed

+4
-0
lines changed

4 files changed

+4
-0
lines changed

Camera Calibration

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"cells":[{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":19050,"status":"ok","timestamp":1729115744332,"user":{"displayName":"Benjamin Saenz","userId":"01005784200202624626"},"user_tz":240},"id":"KF29PaJcy7mi","outputId":"bc6cce21-22c3-46e4-faf3-fe383040bf9c"},"outputs":[{"name":"stdout","output_type":"stream","text":["Mounted at /content/drive\n"]}],"source":["# Code taken from OpenCV's Camera Calibration Doc\n","from google.colab import drive\n","drive.mount('/content/drive')\n","import numpy as np\n","import cv2 as cv\n","import glob\n","import matplotlib.pyplot as plt\n","from google.colab.patches import cv2_imshow"]},{"cell_type":"code","execution_count":2,"metadata":{"executionInfo":{"elapsed":6,"status":"ok","timestamp":1729115744333,"user":{"displayName":"Benjamin Saenz","userId":"01005784200202624626"},"user_tz":240},"id":"x84d8dZDKCbe"},"outputs":[],"source":["# termination criteria\n","criteria = (cv.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER, 30, 0.001)"]},{"cell_type":"code","execution_count":3,"metadata":{"executionInfo":{"elapsed":5,"status":"ok","timestamp":1729115744333,"user":{"displayName":"Benjamin Saenz","userId":"01005784200202624626"},"user_tz":240},"id":"BEUAP3syKEpn"},"outputs":[],"source":["# prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)\n","objp = np.zeros((6*8,3), np.float32)\n","objp[:,:2] = np.mgrid[0:8,0:6].T.reshape(-1,2)"]},{"cell_type":"code","execution_count":4,"metadata":{"executionInfo":{"elapsed":2501,"status":"ok","timestamp":1729115746829,"user":{"displayName":"Benjamin Saenz","userId":"01005784200202624626"},"user_tz":240},"id":"yNZsWWmiL0JY"},"outputs":[],"source":["# Arrays to store object points and image points from all the images.\n","objpoints = [] # 3d point in real world space\n","imgpoints = [] # 2d points in image plane.\n","\n","file_path = '/content/drive/MyDrive/Umd/Activities/UMD Loop/Integration CV/Images/calibration_images/*.png'\n","images = glob.glob(file_path)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true,"base_uri":"https://localhost:8080/","height":1000,"output_embedded_package_id":"18WJMkpB4VWIHCvD6bWnibXTIIQnfkYjo"},"id":"9Wj9zLxc4oR0","outputId":"e6356b57-dcb4-4392-ae50-84d29844a7af"},"outputs":[],"source":["# iterate over the images\n","for fname in images:\n","\n"," img = cv.imread(fname)\n"," gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)\n","\n"," # Find the chess board corners\n"," ret, corners = cv.findChessboardCorners(gray, (8,6), None)\n","\n"," # print(corners) if ret else print(\"Unable to detect corners\")\n","\n"," # If found, add object points, image points (after refining them)\n"," if ret:\n"," objpoints.append(objp)\n","\n"," corners2 = cv.cornerSubPix(gray,corners, (11,11), (-1,-1), criteria)\n"," imgpoints.append(corners2)\n","\n"," # Draw and display the corners\n"," cv.drawChessboardCorners(img, (8,6), corners2, ret)\n"," cv2_imshow(img)\n"," cv.waitKey(500)\n","\n","cv.destroyAllWindows()"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"-znon8hLfboY"},"outputs":[],"source":["\n","ret, mtx, dist, rvecs, tvecs = cv.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], cv.CALIB_USE_LU, None)"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"8idDxAFTgDyz"},"outputs":[{"data":{"text/plain":["array([[1.27603955e+03, 0.00000000e+00, 9.10947475e+02],\n"," [0.00000000e+00, 1.27661564e+03, 6.22502946e+02],\n"," [0.00000000e+00, 0.00000000e+00, 1.00000000e+00]])"]},"execution_count":7,"metadata":{},"output_type":"execute_result"}],"source":["mtx"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"background_save":true},"id":"_Lo8uFwnZ3CU"},"outputs":[{"name":"stdout","output_type":"stream","text":["total error: 0.0642139962691941\n"]}],"source":["mean_error = 0\n","for i in range(len(objpoints)):\n"," imgpoints2, _ = cv.projectPoints(objpoints[i], rvecs[i], tvecs[i], mtx, dist)\n"," error = cv.norm(imgpoints[i], imgpoints2, cv.NORM_L2)/len(imgpoints2)\n"," mean_error += error\n","\n","print( \"total error: {}\".format(mean_error/len(objpoints)) )"]}],"metadata":{"colab":{"name":"","version":""},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0}

Depth (ORB).ipynb

+1
Large diffs are not rendered by default.

Depth From Stereo

+1
Large diffs are not rendered by default.

gettingCameraMatrix.ipynb

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyOSfmmaFTprygNBN47q/vPJ"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"code","execution_count":null,"metadata":{"id":"ad7kGErMLEWs"},"outputs":[],"source":["#include <sl/zed/Camera.hpp>\n","\n","\n","\n","// ... Initialize your ZED camera\n","\n","sl::Camera zed;\n","\n","\n","\n","// Access calibration parameters\n","\n","sl::CalibrationParameters calibration_params = zed.getCameraInformation().calibration_parameters;\n","\n","\n","\n","// Access intrinsic matrix values\n","\n","float fx = calibration_params.left_camera.fx;\n","\n","float fy = calibration_params.left_camera.fy;\n","\n","float cx = calibration_params.left_camera.cx;\n","\n","float cy = calibration_params.left_camera.cy;"]}]}

0 commit comments

Comments
 (0)