diff --git a/.ipynb_checkpoints/CameraCalibration-checkpoint.ipynb b/.ipynb_checkpoints/CameraCalibration-checkpoint.ipynb index 9fa3bbe9119284a0bb75236a837087385bbee808..1c9923e924c9a8e72171ac3b3e6513ac5f13effd 100644 --- a/.ipynb_checkpoints/CameraCalibration-checkpoint.ipynb +++ b/.ipynb_checkpoints/CameraCalibration-checkpoint.ipynb @@ -2,111 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 35, + "execution_count": 2, "id": "2a7d76f9-118d-495f-bce1-8d502caa3f4d", "metadata": {}, - "outputs": [ - { - "ename": "error", - "evalue": "OpenCV(4.5.5) /Users/runner/miniforge3/conda-bld/libopencv_1648505779078/work/modules/calib3d/src/calibration.cpp:3694: error: (-215:Assertion failed) nimages > 0 in function 'calibrateCameraRO'\n", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31merror\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-35-f93f09ea17d7>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0mdetected\u001b[0m \u001b[0mcorners\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mimgpoints\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \"\"\"\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mret\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmtx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrvecs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtvecs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalibrateCamera\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjpoints\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimgpoints\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Camera matrix : \\n\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31merror\u001b[0m: OpenCV(4.5.5) /Users/runner/miniforge3/conda-bld/libopencv_1648505779078/work/modules/calib3d/src/calibration.cpp:3694: error: (-215:Assertion failed) nimages > 0 in function 'calibrateCameraRO'\n" - ] - } - ], - "source": [ - "import cv2\n", - "import numpy as np\n", - "import os\n", - "import glob\n", - "\n", - "# Defining the dimensions of checkerboard\n", - "CHECKERBOARD = (6,9)\n", - "criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)\n", - "\n", - "# Creating vector to store vectors of 3D points for each checkerboard image\n", - "objpoints = []\n", - "# Creating vector to store vectors of 2D points for each checkerboard image\n", - "imgpoints = [] \n", - "\n", - "\n", - "# Defining the world coordinates for 3D points\n", - "objp = np.zeros((1, CHECKERBOARD[0] * CHECKERBOARD[1], 3), np.float32)\n", - "objp[0,:,:2] = np.mgrid[0:CHECKERBOARD[0], 0:CHECKERBOARD[1]].T.reshape(-1, 2)\n", - "prev_img_shape = None\n", - "\n", - "# Extracting path of individual image stored in a given directory\n", - "images = glob.glob('./images/*.jpg')\n", - "a = 1\n", - "for fname in images:\n", - " print(\"Load images\")\n", - " img = cv2.imread(fname)\n", - " gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n", - " # Find the chess board corners\n", - " # If desired number of corners are found in the image then ret = true\n", - " print(\"Finding chessboard corners\")\n", - " ret, corners = cv2.findChessboardCorners(gray, CHECKERBOARD, cv2.CALIB_CB_ADAPTIVE_THRESH + cv2.CALIB_CB_FAST_CHECK + cv2.CALIB_CB_NORMALIZE_IMAGE)\n", - " \n", - " print(\"corners \\n\")\n", - " print(corners)\n", - " print(\"ret \\n\")\n", - " print(ret)\n", - " \n", - " \"\"\"\n", - " If desired number of corner are detected,\n", - " we refine the pixel coordinates and display \n", - " them on the images of checker board\n", - " \"\"\"\n", - " if ret == True:\n", - " print(\"Corners detected\")\n", - " objpoints.append(objp)\n", - " # refining pixel coordinates for given 2d points.\n", - " corners2 = cv2.cornerSubPix(gray, corners, (11,11),(-1,-1), criteria)\n", - " \n", - " imgpoints.append(corners2)\n", - "\n", - " # Draw and display the corners\n", - " img = cv2.drawChessboardCorners(img, CHECKERBOARD, corners2, ret)\n", - " \n", - " print(\"Show images\")\n", - " # cv2.imshow('img',img)\n", - " nome='foto_processada' + str(a) + '.jpg'\n", - " cv2.imwrite(nome, img)\n", - " a+=1\n", - "\n", - "h,w = img.shape[:2]\n", - "\n", - "\"\"\"\n", - "Performing camera calibration by \n", - "passing the value of known 3D points (objpoints)\n", - "and corresponding pixel coordinates of the \n", - "detected corners (imgpoints)\n", - "\"\"\"\n", - "ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None)\n", - "\n", - "print(\"Camera matrix : \\n\")\n", - "print(mtx)\n", - "print(\"dist : \\n\")\n", - "print(dist)\n", - "print(\"rvecs : \\n\")\n", - "print(rvecs)\n", - "print(\"tvecs : \\n\")\n", - "print(tvecs)\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "ff6380f6-b96f-469c-bd7f-17fbb3721389", - "metadata": {}, "outputs": [ { "name": "stdout", @@ -116,113 +14,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[142.64168 254.9432 ]]\n", + "[[[ 639.0235 777.7686 ]]\n", "\n", - " [[146.75854 225.61407 ]]\n", + " [[ 656.3923 690.53076]]\n", "\n", - " [[150.54066 196.51573 ]]\n", + " [[ 674.9845 606.9241 ]]\n", "\n", - " [[154.04866 167.27895 ]]\n", + " [[ 692. 525. ]]\n", "\n", - " [[157.64587 138.57889 ]]\n", + " [[ 707.58185 447.59378]]\n", "\n", - " [[161.52353 110.188255]]\n", + " [[ 724. 368. ]]\n", "\n", - " [[173.47812 258.40778 ]]\n", + " [[ 734.77203 789.1524 ]]\n", "\n", - " [[176.93672 229.4982 ]]\n", + " [[ 751. 705. ]]\n", "\n", - " [[180.49413 200.70557 ]]\n", + " [[ 766.5 622.5 ]]\n", "\n", - " [[184.05624 171.98401 ]]\n", + " [[ 782.3176 540.9585 ]]\n", "\n", - " [[187.66382 144.17943 ]]\n", + " [[ 798.43463 461.30405]]\n", "\n", - " [[190.79807 116.24408 ]]\n", + " [[ 813.51874 385.8128 ]]\n", "\n", - " [[203.03679 261.4418 ]]\n", + " [[ 827.7263 805.1897 ]]\n", "\n", - " [[206.62283 232.9877 ]]\n", + " [[ 843. 720.5 ]]\n", "\n", - " [[209.51048 204.94817 ]]\n", + " [[ 857.1475 635.7256 ]]\n", "\n", - " [[212.91487 176.95428 ]]\n", + " [[ 872. 556.5 ]]\n", "\n", - " [[216.23514 149.11143 ]]\n", + " [[ 884.3218 476.75677]]\n", "\n", - " [[219.46265 121.66086 ]]\n", + " [[ 898.5 400.5 ]]\n", "\n", - " [[231.7584 264.68643 ]]\n", + " [[ 921.5 820.5 ]]\n", "\n", - " [[234.71873 236.5048 ]]\n", + " [[ 935.05347 734.5652 ]]\n", "\n", - " [[237.93755 209.0442 ]]\n", + " [[ 948. 651. ]]\n", "\n", - " [[241.19179 181.42677 ]]\n", + " [[ 960.5 570.5 ]]\n", "\n", - " [[243.81526 154.10678 ]]\n", + " [[ 973.5 492. ]]\n", "\n", - " [[246.94101 126.50662 ]]\n", + " [[ 985. 415.5 ]]\n", "\n", - " [[259.238 267.7193 ]]\n", + " [[1015.50037 834.7283 ]]\n", "\n", - " [[262.34668 240.02777 ]]\n", + " [[1025.472 748.0957 ]]\n", "\n", - " [[265.4873 213.02408 ]]\n", + " [[1037.5 665. ]]\n", "\n", - " [[268.29196 185.80069 ]]\n", + " [[1048.5 584. ]]\n", "\n", - " [[271.08856 158.79974 ]]\n", + " [[1059.5 506. ]]\n", "\n", - " [[274.03 131.71118 ]]\n", + " [[1070.5 429.5 ]]\n", "\n", - " [[285.894 270.6857 ]]\n", + " [[1106.956 847.92126]]\n", "\n", - " [[288.91974 243.85074 ]]\n", + " [[1115.0891 761.4487 ]]\n", "\n", - " [[291.67294 216.57468 ]]\n", + " [[1126.5 678.5 ]]\n", "\n", - " [[294.623 189.9902 ]]\n", + " [[1136.5 597.5 ]]\n", "\n", - " [[297.21625 163.05467 ]]\n", + " [[1146.0726 520.7383 ]]\n", "\n", - " [[300.24863 136.88556 ]]\n", + " [[1155.7115 443.53973]]\n", "\n", - " [[312.1065 273.9727 ]]\n", + " [[1196.5 862.5 ]]\n", "\n", - " [[314.64572 246.71307 ]]\n", + " [[1206. 776. ]]\n", "\n", - " [[317.157 220.33134 ]]\n", + " [[1214.7263 690.3805 ]]\n", "\n", - " [[320.10812 193.81598 ]]\n", + " [[1224.8032 610.88086]]\n", "\n", - " [[322.75974 167.55089 ]]\n", + " [[1232.2605 534.73206]]\n", "\n", - " [[325.6024 141.55737 ]]\n", + " [[1240.46 455.15988]]\n", "\n", - " [[336.9503 276.28848 ]]\n", + " [[1286.4667 875.8089 ]]\n", "\n", - " [[339.49103 249.95747 ]]\n", + " [[1293.4906 790.2898 ]]\n", "\n", - " [[341.7496 224.4254 ]]\n", + " [[1301.4453 706.9651 ]]\n", "\n", - " [[344.58643 197.6241 ]]\n", + " [[1308.9545 625.94543]]\n", "\n", - " [[347.26367 172.06337 ]]\n", + " [[1315.6184 549.94824]]\n", "\n", - " [[350.02148 146.011 ]]\n", + " [[1324.0688 473.57166]]\n", "\n", - " [[361.31314 279.1676 ]]\n", + " [[1375.5 889.5 ]]\n", "\n", - " [[363.75967 252.91393 ]]\n", + " [[1381.2177 803.77344]]\n", "\n", - " [[365.80142 227.11314 ]]\n", + " [[1387.5 721.5 ]]\n", "\n", - " [[368.71347 201.5229 ]]\n", + " [[1393.3751 641.66 ]]\n", "\n", - " [[371.02176 176.04767 ]]\n", + " [[1399.0804 562.1033 ]]\n", "\n", - " [[373.48065 150.7466 ]]]\n", + " [[1405.5 487. ]]]\n", "ret \n", "\n", "True\n", @@ -232,113 +130,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[290.16937 306.88214]]\n", + "[[[ 899. 811.5 ]]\n", "\n", - " [[290.53278 280.11667]]\n", + " [[ 900.9093 732.8598 ]]\n", "\n", - " [[290.77576 252.93272]]\n", + " [[ 903. 655. ]]\n", "\n", - " [[291.0845 225.27896]]\n", + " [[ 904.7568 577.04236]]\n", "\n", - " [[291.53607 197.0897 ]]\n", + " [[ 905.261 498.64136]]\n", "\n", - " [[292.41327 168.24815]]\n", + " [[ 905.5192 420.97415]]\n", "\n", - " [[315.06952 311.0208 ]]\n", + " [[ 977.46826 812.2247 ]]\n", "\n", - " [[315.6739 283.6647 ]]\n", + " [[ 978.5013 734.5584 ]]\n", "\n", - " [[316.2393 256.1716 ]]\n", + " [[ 979.78827 654.0643 ]]\n", "\n", - " [[316.59756 227.64337]]\n", + " [[ 982.199 577.5845 ]]\n", "\n", - " [[317.8294 198.79442]]\n", + " [[ 982.4727 498.89465]]\n", "\n", - " [[318.80643 169.55096]]\n", + " [[ 983.3333 421.7891 ]]\n", "\n", - " [[340.638 315.39575]]\n", + " [[1055.0134 812.9318 ]]\n", "\n", - " [[341.63934 287.54718]]\n", + " [[1056.5 734.5 ]]\n", "\n", - " [[342.54242 259.35623]]\n", + " [[1058.3977 654.84265]]\n", "\n", - " [[343.91376 230.37785]]\n", + " [[1058.6539 577.316 ]]\n", "\n", - " [[345.06934 201.05199]]\n", + " [[1060.2124 499.55264]]\n", "\n", - " [[346.2913 171.26308]]\n", + " [[1060.6967 421.66638]]\n", "\n", - " [[367.9363 319.6347 ]]\n", + " [[1133.1223 814.6864 ]]\n", "\n", - " [[368.97598 291.21472]]\n", + " [[1135. 734.5 ]]\n", "\n", - " [[370.40988 262.52164]]\n", + " [[1136.3137 656.0311 ]]\n", "\n", - " [[371.5862 233.02112]]\n", + " [[1137.4664 576.1803 ]]\n", "\n", - " [[373.30624 203.30626]]\n", + " [[1138.9259 498.6442 ]]\n", "\n", - " [[374.47787 172.69196]]\n", + " [[1138.9785 420.476 ]]\n", "\n", - " [[396.0801 324.31546]]\n", + " [[1213.2064 815.01306]]\n", "\n", - " [[397.2893 295.3254 ]]\n", + " [[1213.5 736.5 ]]\n", "\n", - " [[398.77914 265.93915]]\n", + " [[1215.4124 656.16595]]\n", "\n", - " [[400.4216 236.04366]]\n", + " [[1215.8533 574.62036]]\n", "\n", - " [[402.11496 205.60799]]\n", + " [[1215.4424 498.2347 ]]\n", "\n", - " [[403.97397 174.59514]]\n", + " [[1217.0138 418.6937 ]]\n", "\n", - " [[425.58887 328.73993]]\n", + " [[1293.519 815.7207 ]]\n", "\n", - " [[427.1569 299.32626]]\n", + " [[1292.6182 735.82324]]\n", "\n", - " [[428.80847 269.61078]]\n", + " [[1294. 656. ]]\n", "\n", - " [[430.6196 238.81488]]\n", + " [[1294.969 574.61597]]\n", "\n", - " [[432.5938 207.88199]]\n", + " [[1295.47 497.0397 ]]\n", "\n", - " [[434.81232 176.30792]]\n", + " [[1295.677 418.06848]]\n", "\n", - " [[456.30505 333.57922]]\n", + " [[1373.5 817. ]]\n", "\n", - " [[458.36752 303.69302]]\n", + " [[1372.4941 735.5689 ]]\n", "\n", - " [[460.31778 273.17523]]\n", + " [[1375. 657. ]]\n", "\n", - " [[462.44522 242.11354]]\n", + " [[1374.3657 575.5632 ]]\n", "\n", - " [[464.63388 210.30637]]\n", + " [[1374.0066 496.8773 ]]\n", "\n", - " [[467.06512 178.04515]]\n", + " [[1375.1532 417.1456 ]]\n", "\n", - " [[488.32422 338.7988 ]]\n", + " [[1453.5 817.5 ]]\n", "\n", - " [[490.48627 308.26813]]\n", + " [[1454.364 736.8835 ]]\n", "\n", - " [[492.9652 276.772 ]]\n", + " [[1454.3115 656.4444 ]]\n", "\n", - " [[495.6021 245.111 ]]\n", + " [[1452.9922 576.58405]]\n", "\n", - " [[498.3957 212.66432]]\n", + " [[1455.4373 495.94016]]\n", "\n", - " [[501.15192 179.73419]]\n", + " [[1455.9219 417.03937]]\n", "\n", - " [[521.8725 344.20172]]\n", + " [[1535. 818. ]]\n", "\n", - " [[524.48047 312.59525]]\n", + " [[1535. 737. ]]\n", "\n", - " [[527.2914 281.0416 ]]\n", + " [[1534.9042 658.02075]]\n", "\n", - " [[530.3484 248.3829 ]]\n", + " [[1535.9644 576.5009 ]]\n", "\n", - " [[533.45984 215.4207 ]]\n", + " [[1536.0394 497.4465 ]]\n", "\n", - " [[536.5843 181.58168]]]\n", + " [[1537. 416. ]]]\n", "ret \n", "\n", "True\n", @@ -348,113 +246,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[181.65076 240.43515 ]]\n", + "[[[ 910.5 863. ]]\n", "\n", - " [[182.98524 216.97383 ]]\n", + " [[ 912.0601 780.9294 ]]\n", "\n", - " [[184.64604 192.23103 ]]\n", + " [[ 916.3868 700.79675]]\n", "\n", - " [[186.13664 165.44173 ]]\n", + " [[ 916.4013 618.77167]]\n", "\n", - " [[187.51831 136.71654 ]]\n", + " [[ 915. 538. ]]\n", "\n", - " [[188.62773 106.87892 ]]\n", + " [[ 916.6916 456.92923]]\n", "\n", - " [[209.48434 240.83936 ]]\n", + " [[ 976. 864.5 ]]\n", "\n", - " [[211.59288 217.80495 ]]\n", + " [[ 977.92334 782.85736]]\n", "\n", - " [[213.6713 193.07858 ]]\n", + " [[ 980.5 698.5 ]]\n", "\n", - " [[215.5483 166.35489 ]]\n", + " [[ 981. 616. ]]\n", "\n", - " [[217.48494 138.31812 ]]\n", + " [[ 981. 533.5 ]]\n", "\n", - " [[219.43669 108.85271 ]]\n", + " [[ 982.5 451. ]]\n", "\n", - " [[236.70854 241.51544 ]]\n", + " [[1045.821 865.69116]]\n", "\n", - " [[239.46967 218.49294 ]]\n", + " [[1047.502 780.5138 ]]\n", "\n", - " [[241.6721 194.00006 ]]\n", + " [[1047.4427 696.52747]]\n", "\n", - " [[244.1657 167.18895 ]]\n", + " [[1050.3116 611.98834]]\n", "\n", - " [[246.48727 139.78937 ]]\n", + " [[1049.6863 529.2744 ]]\n", "\n", - " [[249.17108 111.17387 ]]\n", + " [[1051.3126 445.43124]]\n", "\n", - " [[263.09882 241.98895 ]]\n", + " [[1116.5 868. ]]\n", "\n", - " [[266.31976 218.94453 ]]\n", + " [[1117.6089 782.20636]]\n", "\n", - " [[269.2836 194.60536 ]]\n", + " [[1119. 694.5 ]]\n", "\n", - " [[272.11176 168.56544 ]]\n", + " [[1120.5 608. ]]\n", "\n", - " [[275.07178 141.52344 ]]\n", + " [[1120.5 522.5 ]]\n", "\n", - " [[278.2868 113.34714 ]]\n", + " [[1120. 436.5 ]]\n", "\n", - " [[288.6269 242.41682 ]]\n", + " [[1190. 869.5 ]]\n", "\n", - " [[292.33762 219.4731 ]]\n", + " [[1191. 780. ]]\n", "\n", - " [[295.634 195.30553 ]]\n", + " [[1191.2645 691.77313]]\n", "\n", - " [[299.0187 169.72737 ]]\n", + " [[1193. 604. ]]\n", "\n", - " [[302.50778 143.14719 ]]\n", + " [[1193.2755 518.85846]]\n", "\n", - " [[306.42252 115.552376]]\n", + " [[1192.6993 429.5434 ]]\n", "\n", - " [[313.5622 242.52242 ]]\n", + " [[1266.5 871.5 ]]\n", "\n", - " [[317.43845 219.64905 ]]\n", + " [[1267.7905 782.69824]]\n", "\n", - " [[321.32867 195.67903 ]]\n", + " [[1267.5435 690.26495]]\n", "\n", - " [[325.13644 170.68053 ]]\n", + " [[1268.5 600. ]]\n", "\n", - " [[329.4506 144.55687 ]]\n", + " [[1268.3308 508.62192]]\n", "\n", - " [[333.65683 117.407425]]\n", + " [[1268.5 420.5 ]]\n", "\n", - " [[337.9189 242.53233 ]]\n", + " [[1347. 873.5 ]]\n", "\n", - " [[342.0708 219.9899 ]]\n", + " [[1346.8035 779.1707 ]]\n", "\n", - " [[346.30737 196.3446 ]]\n", + " [[1348.4983 687.9501 ]]\n", "\n", - " [[350.5993 171.67969 ]]\n", + " [[1348.5 596.5 ]]\n", "\n", - " [[355.18494 146.09834 ]]\n", + " [[1349.139 505.66098]]\n", "\n", - " [[360.2282 119.398865]]\n", + " [[1349.8224 412.16586]]\n", "\n", - " [[361.50598 242.38771 ]]\n", + " [[1430.4133 874.297 ]]\n", "\n", - " [[365.82083 220.18697 ]]\n", + " [[1431.0417 779.15344]]\n", "\n", - " [[370.56412 196.69379 ]]\n", + " [[1431.3235 687.3505 ]]\n", "\n", - " [[375.1744 172.38173 ]]\n", + " [[1430.9745 591.34973]]\n", "\n", - " [[380.44196 147.4049 ]]\n", + " [[1430.9946 498.30103]]\n", "\n", - " [[386.07758 121.229385]]\n", + " [[1432.9409 403.4933 ]]\n", "\n", - " [[384.24615 242.4664 ]]\n", + " [[1517.503 876.30194]]\n", "\n", - " [[389.10178 220.35866 ]]\n", + " [[1520.8458 779.0301 ]]\n", "\n", - " [[394.30902 197.43806 ]]\n", + " [[1521.7913 685.1628 ]]\n", "\n", - " [[399.71222 173.47057 ]]\n", + " [[1520.3414 586.98047]]\n", "\n", - " [[405.3322 148.5755 ]]\n", + " [[1520.7906 491.8553 ]]\n", "\n", - " [[411.4092 122.746666]]]\n", + " [[1521.6085 393.3422 ]]]\n", "ret \n", "\n", "True\n", @@ -464,113 +362,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[287.53036 361.7949 ]]\n", + "[[[ 764.8656 964.9498 ]]\n", "\n", - " [[282.58374 342.85358]]\n", + " [[ 763.7977 863.50116]]\n", "\n", - " [[278.01462 325.26227]]\n", + " [[ 764.5 761.5 ]]\n", "\n", - " [[272.65985 307.25195]]\n", + " [[ 767. 660.5 ]]\n", "\n", - " [[268.46243 289.60532]]\n", + " [[ 768.2549 557.984 ]]\n", "\n", - " [[263.20535 271.30942]]\n", + " [[ 771. 457.5 ]]\n", "\n", - " [[305.57693 356.4085 ]]\n", + " [[ 853.5 959.5 ]]\n", "\n", - " [[300.56805 337.95624]]\n", + " [[ 853.7181 859.34436]]\n", "\n", - " [[295.50082 319.71555]]\n", + " [[ 853.5 762. ]]\n", "\n", - " [[290.40643 301.90472]]\n", + " [[ 855.1204 663.6305 ]]\n", "\n", - " [[285.50308 284.46655]]\n", + " [[ 859.298 565.66095]]\n", "\n", - " [[281.19418 267.06412]]\n", + " [[ 861.1883 467.44714]]\n", "\n", - " [[323.32886 351.0642 ]]\n", + " [[ 938.68677 956.2966 ]]\n", "\n", - " [[318.34674 332.87128]]\n", + " [[ 937.5229 859.72 ]]\n", "\n", - " [[313.38998 314.55502]]\n", + " [[ 940.53265 764.71063]]\n", "\n", - " [[307.87402 296.82272]]\n", + " [[ 940. 668. ]]\n", "\n", - " [[303.11688 279.44043]]\n", + " [[ 942.329 572.6662 ]]\n", "\n", - " [[298.32162 261.79645]]\n", + " [[ 944.5 476.5 ]]\n", "\n", - " [[340.5354 345.56195]]\n", + " [[1018. 951. ]]\n", "\n", - " [[335.7001 327.50388]]\n", + " [[1018. 857.5 ]]\n", "\n", - " [[330.57962 310.177 ]]\n", + " [[1021.6408 763.639 ]]\n", "\n", - " [[325.31915 292.1104 ]]\n", + " [[1021.5 671.5 ]]\n", "\n", - " [[320.627 274.28772]]\n", + " [[1023.432 580.4555 ]]\n", "\n", - " [[315.36737 257.47568]]\n", + " [[1026. 485. ]]\n", "\n", - " [[358.15817 340.35425]]\n", + " [[1096.802 948.1617 ]]\n", "\n", - " [[352.91727 322.5884 ]]\n", + " [[1096.4911 859.1596 ]]\n", "\n", - " [[347.64328 304.45084]]\n", + " [[1098.4639 766.04407]]\n", "\n", - " [[342.7978 287.11328]]\n", + " [[1100.124 675.1677 ]]\n", "\n", - " [[337.47632 269.54434]]\n", + " [[1102.5116 583.58484]]\n", "\n", - " [[332.27792 253.0178 ]]\n", + " [[1105.1619 491.93616]]\n", "\n", - " [[375.521 334.54907]]\n", + " [[1169.0957 944.1795 ]]\n", "\n", - " [[370.54572 317.49283]]\n", + " [[1170.1423 853.6245 ]]\n", "\n", - " [[365.13348 300.1963 ]]\n", + " [[1173.897 766.3536 ]]\n", "\n", - " [[359.96573 282.50775]]\n", + " [[1175. 678. ]]\n", "\n", - " [[354.63464 264.84613]]\n", + " [[1177. 588.5 ]]\n", "\n", - " [[349.94232 247.95018]]\n", + " [[1180. 500. ]]\n", "\n", - " [[392.5023 330.13177]]\n", + " [[1238.7026 942.0214 ]]\n", "\n", - " [[387.49005 312.34338]]\n", + " [[1238.2155 855.17236]]\n", "\n", - " [[381.98724 294.8061 ]]\n", + " [[1243.5 768. ]]\n", "\n", - " [[376.97012 277.55432]]\n", + " [[1246. 680.5 ]]\n", "\n", - " [[371.30545 260.40204]]\n", + " [[1248.4957 594.08026]]\n", "\n", - " [[366.55707 243.28087]]\n", + " [[1249.9844 507.89417]]\n", "\n", - " [[409.58173 325.1956 ]]\n", + " [[1304.9393 940.1299 ]]\n", "\n", - " [[404.145 307.3832 ]]\n", + " [[1307.5906 853.12744]]\n", "\n", - " [[398.70715 289.91235]]\n", + " [[1308.3942 768.86584]]\n", "\n", - " [[393.5826 272.64722]]\n", + " [[1314.2432 683.94366]]\n", "\n", - " [[388.28845 255.7331 ]]\n", + " [[1313.9456 600.66425]]\n", "\n", - " [[384.17352 239.4941 ]]\n", + " [[1317.7017 514.2484 ]]\n", "\n", - " [[426.2251 320.06195]]\n", + " [[1370. 935. ]]\n", "\n", - " [[420.66238 302.5737 ]]\n", + " [[1373.642 851.369 ]]\n", "\n", - " [[414.9943 284.84647]]\n", + " [[1374.1757 770.3433 ]]\n", "\n", - " [[410.52255 267.81345]]\n", + " [[1377.4613 686.7194 ]]\n", "\n", - " [[405.14496 251.26006]]\n", + " [[1379.1792 603.9471 ]]\n", "\n", - " [[400.21164 234.16982]]]\n", + " [[1380.5 521. ]]]\n", "ret \n", "\n", "True\n", @@ -578,35 +476,35 @@ "Show images\n", "Camera matrix : \n", "\n", - "[[603.52572321 0. 326.41229818]\n", - " [ 0. 603.65899926 235.9537242 ]\n", - " [ 0. 0. 1. ]]\n", + "[[2.17972257e+03 0.00000000e+00 1.13428062e+03]\n", + " [0.00000000e+00 2.18761121e+03 7.75245832e+02]\n", + " [0.00000000e+00 0.00000000e+00 1.00000000e+00]]\n", "dist : \n", "\n", - "[[ 1.78080527e-01 -1.34103119e+00 -4.51376510e-03 2.52476784e-03\n", - " 4.71440744e+00]]\n", + "[[-2.84714302e-01 6.49693067e+00 -3.24989380e-03 -4.82367998e-03\n", + " -3.72192794e+01]]\n", "rvecs : \n", "\n", - "(array([[ 0.19951224],\n", - " [-0.31463841],\n", - " [-1.43904688]]), array([[-0.19044869],\n", - " [ 0.44388641],\n", - " [-1.47868386]]), array([[ 0.61618287],\n", - " [ 0.13666227],\n", - " [-1.44098723]]), array([[ 0.01147331],\n", - " [-0.24455644],\n", - " [-1.83474358]]))\n", + "(array([[-0.19428481],\n", + " [-0.36544876],\n", + " [-1.41455536]]), array([[-0.11712846],\n", + " [ 0.04631453],\n", + " [-1.55829611]]), array([[-0.46588682],\n", + " [ 0.42968983],\n", + " [-1.52120256]]), array([[ 0.48904751],\n", + " [-0.45473758],\n", + " [-1.50249023]]))\n", "tvecs : \n", "\n", - "(array([[-6.18074691],\n", - " [ 0.64577552],\n", - " [20.4775399 ]]), array([[-1.33022191],\n", - " [ 2.5755565 ],\n", - " [21.87116664]]), array([[-5.25095778],\n", - " [ 0.22170776],\n", - " [22.06269285]]), array([[-2.0724692 ],\n", - " [ 6.70679783],\n", - " [32.30219442]]))\n" + "(array([[-5.23636392e+00],\n", + " [ 2.21828316e-02],\n", + " [ 2.30990979e+01]]), array([[-2.98810499],\n", + " [ 0.46553616],\n", + " [27.74220497]]), array([[-2.73101383],\n", + " [ 1.07991409],\n", + " [26.86513256]]), array([[-3.72306159],\n", + " [ 1.86386959],\n", + " [21.74654085]]))\n" ] } ], @@ -632,7 +530,7 @@ "prev_img_shape = None\n", "\n", "# Extracting path of individual image stored in a given directory\n", - "images = glob.glob('./images/*.jpeg')\n", + "images = glob.glob('./images/*.jpg')\n", "a = 1\n", "for fname in images:\n", " print(\"Load images\")\n", @@ -641,7 +539,7 @@ " # Find the chess board corners\n", " # If desired number of corners are found in the image then ret = true\n", " print(\"Finding chessboard corners\")\n", - " ret, corners = cv2.findChessboardCorners(gray, CHECKERBOARD, None)\n", + " ret, corners = cv2.findChessboardCorners(gray, CHECKERBOARD, cv2.CALIB_CB_ADAPTIVE_THRESH + cv2.CALIB_CB_FAST_CHECK + cv2.CALIB_CB_NORMALIZE_IMAGE)\n", " \n", " print(\"corners \\n\")\n", " print(corners)\n", @@ -691,17 +589,8 @@ "\n", "\n", "\n", - "\n", "\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f1dd04b0-6ae7-49a6-bb70-9dbb9adbc5c4", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/CameraCalibration.ipynb b/CameraCalibration.ipynb index 9fa3bbe9119284a0bb75236a837087385bbee808..1c9923e924c9a8e72171ac3b3e6513ac5f13effd 100644 --- a/CameraCalibration.ipynb +++ b/CameraCalibration.ipynb @@ -2,111 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 35, + "execution_count": 2, "id": "2a7d76f9-118d-495f-bce1-8d502caa3f4d", "metadata": {}, - "outputs": [ - { - "ename": "error", - "evalue": "OpenCV(4.5.5) /Users/runner/miniforge3/conda-bld/libopencv_1648505779078/work/modules/calib3d/src/calibration.cpp:3694: error: (-215:Assertion failed) nimages > 0 in function 'calibrateCameraRO'\n", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31merror\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-35-f93f09ea17d7>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0mdetected\u001b[0m \u001b[0mcorners\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mimgpoints\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \"\"\"\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mret\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmtx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrvecs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtvecs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalibrateCamera\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjpoints\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimgpoints\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Camera matrix : \\n\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31merror\u001b[0m: OpenCV(4.5.5) /Users/runner/miniforge3/conda-bld/libopencv_1648505779078/work/modules/calib3d/src/calibration.cpp:3694: error: (-215:Assertion failed) nimages > 0 in function 'calibrateCameraRO'\n" - ] - } - ], - "source": [ - "import cv2\n", - "import numpy as np\n", - "import os\n", - "import glob\n", - "\n", - "# Defining the dimensions of checkerboard\n", - "CHECKERBOARD = (6,9)\n", - "criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)\n", - "\n", - "# Creating vector to store vectors of 3D points for each checkerboard image\n", - "objpoints = []\n", - "# Creating vector to store vectors of 2D points for each checkerboard image\n", - "imgpoints = [] \n", - "\n", - "\n", - "# Defining the world coordinates for 3D points\n", - "objp = np.zeros((1, CHECKERBOARD[0] * CHECKERBOARD[1], 3), np.float32)\n", - "objp[0,:,:2] = np.mgrid[0:CHECKERBOARD[0], 0:CHECKERBOARD[1]].T.reshape(-1, 2)\n", - "prev_img_shape = None\n", - "\n", - "# Extracting path of individual image stored in a given directory\n", - "images = glob.glob('./images/*.jpg')\n", - "a = 1\n", - "for fname in images:\n", - " print(\"Load images\")\n", - " img = cv2.imread(fname)\n", - " gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n", - " # Find the chess board corners\n", - " # If desired number of corners are found in the image then ret = true\n", - " print(\"Finding chessboard corners\")\n", - " ret, corners = cv2.findChessboardCorners(gray, CHECKERBOARD, cv2.CALIB_CB_ADAPTIVE_THRESH + cv2.CALIB_CB_FAST_CHECK + cv2.CALIB_CB_NORMALIZE_IMAGE)\n", - " \n", - " print(\"corners \\n\")\n", - " print(corners)\n", - " print(\"ret \\n\")\n", - " print(ret)\n", - " \n", - " \"\"\"\n", - " If desired number of corner are detected,\n", - " we refine the pixel coordinates and display \n", - " them on the images of checker board\n", - " \"\"\"\n", - " if ret == True:\n", - " print(\"Corners detected\")\n", - " objpoints.append(objp)\n", - " # refining pixel coordinates for given 2d points.\n", - " corners2 = cv2.cornerSubPix(gray, corners, (11,11),(-1,-1), criteria)\n", - " \n", - " imgpoints.append(corners2)\n", - "\n", - " # Draw and display the corners\n", - " img = cv2.drawChessboardCorners(img, CHECKERBOARD, corners2, ret)\n", - " \n", - " print(\"Show images\")\n", - " # cv2.imshow('img',img)\n", - " nome='foto_processada' + str(a) + '.jpg'\n", - " cv2.imwrite(nome, img)\n", - " a+=1\n", - "\n", - "h,w = img.shape[:2]\n", - "\n", - "\"\"\"\n", - "Performing camera calibration by \n", - "passing the value of known 3D points (objpoints)\n", - "and corresponding pixel coordinates of the \n", - "detected corners (imgpoints)\n", - "\"\"\"\n", - "ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None)\n", - "\n", - "print(\"Camera matrix : \\n\")\n", - "print(mtx)\n", - "print(\"dist : \\n\")\n", - "print(dist)\n", - "print(\"rvecs : \\n\")\n", - "print(rvecs)\n", - "print(\"tvecs : \\n\")\n", - "print(tvecs)\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "ff6380f6-b96f-469c-bd7f-17fbb3721389", - "metadata": {}, "outputs": [ { "name": "stdout", @@ -116,113 +14,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[142.64168 254.9432 ]]\n", + "[[[ 639.0235 777.7686 ]]\n", "\n", - " [[146.75854 225.61407 ]]\n", + " [[ 656.3923 690.53076]]\n", "\n", - " [[150.54066 196.51573 ]]\n", + " [[ 674.9845 606.9241 ]]\n", "\n", - " [[154.04866 167.27895 ]]\n", + " [[ 692. 525. ]]\n", "\n", - " [[157.64587 138.57889 ]]\n", + " [[ 707.58185 447.59378]]\n", "\n", - " [[161.52353 110.188255]]\n", + " [[ 724. 368. ]]\n", "\n", - " [[173.47812 258.40778 ]]\n", + " [[ 734.77203 789.1524 ]]\n", "\n", - " [[176.93672 229.4982 ]]\n", + " [[ 751. 705. ]]\n", "\n", - " [[180.49413 200.70557 ]]\n", + " [[ 766.5 622.5 ]]\n", "\n", - " [[184.05624 171.98401 ]]\n", + " [[ 782.3176 540.9585 ]]\n", "\n", - " [[187.66382 144.17943 ]]\n", + " [[ 798.43463 461.30405]]\n", "\n", - " [[190.79807 116.24408 ]]\n", + " [[ 813.51874 385.8128 ]]\n", "\n", - " [[203.03679 261.4418 ]]\n", + " [[ 827.7263 805.1897 ]]\n", "\n", - " [[206.62283 232.9877 ]]\n", + " [[ 843. 720.5 ]]\n", "\n", - " [[209.51048 204.94817 ]]\n", + " [[ 857.1475 635.7256 ]]\n", "\n", - " [[212.91487 176.95428 ]]\n", + " [[ 872. 556.5 ]]\n", "\n", - " [[216.23514 149.11143 ]]\n", + " [[ 884.3218 476.75677]]\n", "\n", - " [[219.46265 121.66086 ]]\n", + " [[ 898.5 400.5 ]]\n", "\n", - " [[231.7584 264.68643 ]]\n", + " [[ 921.5 820.5 ]]\n", "\n", - " [[234.71873 236.5048 ]]\n", + " [[ 935.05347 734.5652 ]]\n", "\n", - " [[237.93755 209.0442 ]]\n", + " [[ 948. 651. ]]\n", "\n", - " [[241.19179 181.42677 ]]\n", + " [[ 960.5 570.5 ]]\n", "\n", - " [[243.81526 154.10678 ]]\n", + " [[ 973.5 492. ]]\n", "\n", - " [[246.94101 126.50662 ]]\n", + " [[ 985. 415.5 ]]\n", "\n", - " [[259.238 267.7193 ]]\n", + " [[1015.50037 834.7283 ]]\n", "\n", - " [[262.34668 240.02777 ]]\n", + " [[1025.472 748.0957 ]]\n", "\n", - " [[265.4873 213.02408 ]]\n", + " [[1037.5 665. ]]\n", "\n", - " [[268.29196 185.80069 ]]\n", + " [[1048.5 584. ]]\n", "\n", - " [[271.08856 158.79974 ]]\n", + " [[1059.5 506. ]]\n", "\n", - " [[274.03 131.71118 ]]\n", + " [[1070.5 429.5 ]]\n", "\n", - " [[285.894 270.6857 ]]\n", + " [[1106.956 847.92126]]\n", "\n", - " [[288.91974 243.85074 ]]\n", + " [[1115.0891 761.4487 ]]\n", "\n", - " [[291.67294 216.57468 ]]\n", + " [[1126.5 678.5 ]]\n", "\n", - " [[294.623 189.9902 ]]\n", + " [[1136.5 597.5 ]]\n", "\n", - " [[297.21625 163.05467 ]]\n", + " [[1146.0726 520.7383 ]]\n", "\n", - " [[300.24863 136.88556 ]]\n", + " [[1155.7115 443.53973]]\n", "\n", - " [[312.1065 273.9727 ]]\n", + " [[1196.5 862.5 ]]\n", "\n", - " [[314.64572 246.71307 ]]\n", + " [[1206. 776. ]]\n", "\n", - " [[317.157 220.33134 ]]\n", + " [[1214.7263 690.3805 ]]\n", "\n", - " [[320.10812 193.81598 ]]\n", + " [[1224.8032 610.88086]]\n", "\n", - " [[322.75974 167.55089 ]]\n", + " [[1232.2605 534.73206]]\n", "\n", - " [[325.6024 141.55737 ]]\n", + " [[1240.46 455.15988]]\n", "\n", - " [[336.9503 276.28848 ]]\n", + " [[1286.4667 875.8089 ]]\n", "\n", - " [[339.49103 249.95747 ]]\n", + " [[1293.4906 790.2898 ]]\n", "\n", - " [[341.7496 224.4254 ]]\n", + " [[1301.4453 706.9651 ]]\n", "\n", - " [[344.58643 197.6241 ]]\n", + " [[1308.9545 625.94543]]\n", "\n", - " [[347.26367 172.06337 ]]\n", + " [[1315.6184 549.94824]]\n", "\n", - " [[350.02148 146.011 ]]\n", + " [[1324.0688 473.57166]]\n", "\n", - " [[361.31314 279.1676 ]]\n", + " [[1375.5 889.5 ]]\n", "\n", - " [[363.75967 252.91393 ]]\n", + " [[1381.2177 803.77344]]\n", "\n", - " [[365.80142 227.11314 ]]\n", + " [[1387.5 721.5 ]]\n", "\n", - " [[368.71347 201.5229 ]]\n", + " [[1393.3751 641.66 ]]\n", "\n", - " [[371.02176 176.04767 ]]\n", + " [[1399.0804 562.1033 ]]\n", "\n", - " [[373.48065 150.7466 ]]]\n", + " [[1405.5 487. ]]]\n", "ret \n", "\n", "True\n", @@ -232,113 +130,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[290.16937 306.88214]]\n", + "[[[ 899. 811.5 ]]\n", "\n", - " [[290.53278 280.11667]]\n", + " [[ 900.9093 732.8598 ]]\n", "\n", - " [[290.77576 252.93272]]\n", + " [[ 903. 655. ]]\n", "\n", - " [[291.0845 225.27896]]\n", + " [[ 904.7568 577.04236]]\n", "\n", - " [[291.53607 197.0897 ]]\n", + " [[ 905.261 498.64136]]\n", "\n", - " [[292.41327 168.24815]]\n", + " [[ 905.5192 420.97415]]\n", "\n", - " [[315.06952 311.0208 ]]\n", + " [[ 977.46826 812.2247 ]]\n", "\n", - " [[315.6739 283.6647 ]]\n", + " [[ 978.5013 734.5584 ]]\n", "\n", - " [[316.2393 256.1716 ]]\n", + " [[ 979.78827 654.0643 ]]\n", "\n", - " [[316.59756 227.64337]]\n", + " [[ 982.199 577.5845 ]]\n", "\n", - " [[317.8294 198.79442]]\n", + " [[ 982.4727 498.89465]]\n", "\n", - " [[318.80643 169.55096]]\n", + " [[ 983.3333 421.7891 ]]\n", "\n", - " [[340.638 315.39575]]\n", + " [[1055.0134 812.9318 ]]\n", "\n", - " [[341.63934 287.54718]]\n", + " [[1056.5 734.5 ]]\n", "\n", - " [[342.54242 259.35623]]\n", + " [[1058.3977 654.84265]]\n", "\n", - " [[343.91376 230.37785]]\n", + " [[1058.6539 577.316 ]]\n", "\n", - " [[345.06934 201.05199]]\n", + " [[1060.2124 499.55264]]\n", "\n", - " [[346.2913 171.26308]]\n", + " [[1060.6967 421.66638]]\n", "\n", - " [[367.9363 319.6347 ]]\n", + " [[1133.1223 814.6864 ]]\n", "\n", - " [[368.97598 291.21472]]\n", + " [[1135. 734.5 ]]\n", "\n", - " [[370.40988 262.52164]]\n", + " [[1136.3137 656.0311 ]]\n", "\n", - " [[371.5862 233.02112]]\n", + " [[1137.4664 576.1803 ]]\n", "\n", - " [[373.30624 203.30626]]\n", + " [[1138.9259 498.6442 ]]\n", "\n", - " [[374.47787 172.69196]]\n", + " [[1138.9785 420.476 ]]\n", "\n", - " [[396.0801 324.31546]]\n", + " [[1213.2064 815.01306]]\n", "\n", - " [[397.2893 295.3254 ]]\n", + " [[1213.5 736.5 ]]\n", "\n", - " [[398.77914 265.93915]]\n", + " [[1215.4124 656.16595]]\n", "\n", - " [[400.4216 236.04366]]\n", + " [[1215.8533 574.62036]]\n", "\n", - " [[402.11496 205.60799]]\n", + " [[1215.4424 498.2347 ]]\n", "\n", - " [[403.97397 174.59514]]\n", + " [[1217.0138 418.6937 ]]\n", "\n", - " [[425.58887 328.73993]]\n", + " [[1293.519 815.7207 ]]\n", "\n", - " [[427.1569 299.32626]]\n", + " [[1292.6182 735.82324]]\n", "\n", - " [[428.80847 269.61078]]\n", + " [[1294. 656. ]]\n", "\n", - " [[430.6196 238.81488]]\n", + " [[1294.969 574.61597]]\n", "\n", - " [[432.5938 207.88199]]\n", + " [[1295.47 497.0397 ]]\n", "\n", - " [[434.81232 176.30792]]\n", + " [[1295.677 418.06848]]\n", "\n", - " [[456.30505 333.57922]]\n", + " [[1373.5 817. ]]\n", "\n", - " [[458.36752 303.69302]]\n", + " [[1372.4941 735.5689 ]]\n", "\n", - " [[460.31778 273.17523]]\n", + " [[1375. 657. ]]\n", "\n", - " [[462.44522 242.11354]]\n", + " [[1374.3657 575.5632 ]]\n", "\n", - " [[464.63388 210.30637]]\n", + " [[1374.0066 496.8773 ]]\n", "\n", - " [[467.06512 178.04515]]\n", + " [[1375.1532 417.1456 ]]\n", "\n", - " [[488.32422 338.7988 ]]\n", + " [[1453.5 817.5 ]]\n", "\n", - " [[490.48627 308.26813]]\n", + " [[1454.364 736.8835 ]]\n", "\n", - " [[492.9652 276.772 ]]\n", + " [[1454.3115 656.4444 ]]\n", "\n", - " [[495.6021 245.111 ]]\n", + " [[1452.9922 576.58405]]\n", "\n", - " [[498.3957 212.66432]]\n", + " [[1455.4373 495.94016]]\n", "\n", - " [[501.15192 179.73419]]\n", + " [[1455.9219 417.03937]]\n", "\n", - " [[521.8725 344.20172]]\n", + " [[1535. 818. ]]\n", "\n", - " [[524.48047 312.59525]]\n", + " [[1535. 737. ]]\n", "\n", - " [[527.2914 281.0416 ]]\n", + " [[1534.9042 658.02075]]\n", "\n", - " [[530.3484 248.3829 ]]\n", + " [[1535.9644 576.5009 ]]\n", "\n", - " [[533.45984 215.4207 ]]\n", + " [[1536.0394 497.4465 ]]\n", "\n", - " [[536.5843 181.58168]]]\n", + " [[1537. 416. ]]]\n", "ret \n", "\n", "True\n", @@ -348,113 +246,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[181.65076 240.43515 ]]\n", + "[[[ 910.5 863. ]]\n", "\n", - " [[182.98524 216.97383 ]]\n", + " [[ 912.0601 780.9294 ]]\n", "\n", - " [[184.64604 192.23103 ]]\n", + " [[ 916.3868 700.79675]]\n", "\n", - " [[186.13664 165.44173 ]]\n", + " [[ 916.4013 618.77167]]\n", "\n", - " [[187.51831 136.71654 ]]\n", + " [[ 915. 538. ]]\n", "\n", - " [[188.62773 106.87892 ]]\n", + " [[ 916.6916 456.92923]]\n", "\n", - " [[209.48434 240.83936 ]]\n", + " [[ 976. 864.5 ]]\n", "\n", - " [[211.59288 217.80495 ]]\n", + " [[ 977.92334 782.85736]]\n", "\n", - " [[213.6713 193.07858 ]]\n", + " [[ 980.5 698.5 ]]\n", "\n", - " [[215.5483 166.35489 ]]\n", + " [[ 981. 616. ]]\n", "\n", - " [[217.48494 138.31812 ]]\n", + " [[ 981. 533.5 ]]\n", "\n", - " [[219.43669 108.85271 ]]\n", + " [[ 982.5 451. ]]\n", "\n", - " [[236.70854 241.51544 ]]\n", + " [[1045.821 865.69116]]\n", "\n", - " [[239.46967 218.49294 ]]\n", + " [[1047.502 780.5138 ]]\n", "\n", - " [[241.6721 194.00006 ]]\n", + " [[1047.4427 696.52747]]\n", "\n", - " [[244.1657 167.18895 ]]\n", + " [[1050.3116 611.98834]]\n", "\n", - " [[246.48727 139.78937 ]]\n", + " [[1049.6863 529.2744 ]]\n", "\n", - " [[249.17108 111.17387 ]]\n", + " [[1051.3126 445.43124]]\n", "\n", - " [[263.09882 241.98895 ]]\n", + " [[1116.5 868. ]]\n", "\n", - " [[266.31976 218.94453 ]]\n", + " [[1117.6089 782.20636]]\n", "\n", - " [[269.2836 194.60536 ]]\n", + " [[1119. 694.5 ]]\n", "\n", - " [[272.11176 168.56544 ]]\n", + " [[1120.5 608. ]]\n", "\n", - " [[275.07178 141.52344 ]]\n", + " [[1120.5 522.5 ]]\n", "\n", - " [[278.2868 113.34714 ]]\n", + " [[1120. 436.5 ]]\n", "\n", - " [[288.6269 242.41682 ]]\n", + " [[1190. 869.5 ]]\n", "\n", - " [[292.33762 219.4731 ]]\n", + " [[1191. 780. ]]\n", "\n", - " [[295.634 195.30553 ]]\n", + " [[1191.2645 691.77313]]\n", "\n", - " [[299.0187 169.72737 ]]\n", + " [[1193. 604. ]]\n", "\n", - " [[302.50778 143.14719 ]]\n", + " [[1193.2755 518.85846]]\n", "\n", - " [[306.42252 115.552376]]\n", + " [[1192.6993 429.5434 ]]\n", "\n", - " [[313.5622 242.52242 ]]\n", + " [[1266.5 871.5 ]]\n", "\n", - " [[317.43845 219.64905 ]]\n", + " [[1267.7905 782.69824]]\n", "\n", - " [[321.32867 195.67903 ]]\n", + " [[1267.5435 690.26495]]\n", "\n", - " [[325.13644 170.68053 ]]\n", + " [[1268.5 600. ]]\n", "\n", - " [[329.4506 144.55687 ]]\n", + " [[1268.3308 508.62192]]\n", "\n", - " [[333.65683 117.407425]]\n", + " [[1268.5 420.5 ]]\n", "\n", - " [[337.9189 242.53233 ]]\n", + " [[1347. 873.5 ]]\n", "\n", - " [[342.0708 219.9899 ]]\n", + " [[1346.8035 779.1707 ]]\n", "\n", - " [[346.30737 196.3446 ]]\n", + " [[1348.4983 687.9501 ]]\n", "\n", - " [[350.5993 171.67969 ]]\n", + " [[1348.5 596.5 ]]\n", "\n", - " [[355.18494 146.09834 ]]\n", + " [[1349.139 505.66098]]\n", "\n", - " [[360.2282 119.398865]]\n", + " [[1349.8224 412.16586]]\n", "\n", - " [[361.50598 242.38771 ]]\n", + " [[1430.4133 874.297 ]]\n", "\n", - " [[365.82083 220.18697 ]]\n", + " [[1431.0417 779.15344]]\n", "\n", - " [[370.56412 196.69379 ]]\n", + " [[1431.3235 687.3505 ]]\n", "\n", - " [[375.1744 172.38173 ]]\n", + " [[1430.9745 591.34973]]\n", "\n", - " [[380.44196 147.4049 ]]\n", + " [[1430.9946 498.30103]]\n", "\n", - " [[386.07758 121.229385]]\n", + " [[1432.9409 403.4933 ]]\n", "\n", - " [[384.24615 242.4664 ]]\n", + " [[1517.503 876.30194]]\n", "\n", - " [[389.10178 220.35866 ]]\n", + " [[1520.8458 779.0301 ]]\n", "\n", - " [[394.30902 197.43806 ]]\n", + " [[1521.7913 685.1628 ]]\n", "\n", - " [[399.71222 173.47057 ]]\n", + " [[1520.3414 586.98047]]\n", "\n", - " [[405.3322 148.5755 ]]\n", + " [[1520.7906 491.8553 ]]\n", "\n", - " [[411.4092 122.746666]]]\n", + " [[1521.6085 393.3422 ]]]\n", "ret \n", "\n", "True\n", @@ -464,113 +362,113 @@ "Finding chessboard corners\n", "corners \n", "\n", - "[[[287.53036 361.7949 ]]\n", + "[[[ 764.8656 964.9498 ]]\n", "\n", - " [[282.58374 342.85358]]\n", + " [[ 763.7977 863.50116]]\n", "\n", - " [[278.01462 325.26227]]\n", + " [[ 764.5 761.5 ]]\n", "\n", - " [[272.65985 307.25195]]\n", + " [[ 767. 660.5 ]]\n", "\n", - " [[268.46243 289.60532]]\n", + " [[ 768.2549 557.984 ]]\n", "\n", - " [[263.20535 271.30942]]\n", + " [[ 771. 457.5 ]]\n", "\n", - " [[305.57693 356.4085 ]]\n", + " [[ 853.5 959.5 ]]\n", "\n", - " [[300.56805 337.95624]]\n", + " [[ 853.7181 859.34436]]\n", "\n", - " [[295.50082 319.71555]]\n", + " [[ 853.5 762. ]]\n", "\n", - " [[290.40643 301.90472]]\n", + " [[ 855.1204 663.6305 ]]\n", "\n", - " [[285.50308 284.46655]]\n", + " [[ 859.298 565.66095]]\n", "\n", - " [[281.19418 267.06412]]\n", + " [[ 861.1883 467.44714]]\n", "\n", - " [[323.32886 351.0642 ]]\n", + " [[ 938.68677 956.2966 ]]\n", "\n", - " [[318.34674 332.87128]]\n", + " [[ 937.5229 859.72 ]]\n", "\n", - " [[313.38998 314.55502]]\n", + " [[ 940.53265 764.71063]]\n", "\n", - " [[307.87402 296.82272]]\n", + " [[ 940. 668. ]]\n", "\n", - " [[303.11688 279.44043]]\n", + " [[ 942.329 572.6662 ]]\n", "\n", - " [[298.32162 261.79645]]\n", + " [[ 944.5 476.5 ]]\n", "\n", - " [[340.5354 345.56195]]\n", + " [[1018. 951. ]]\n", "\n", - " [[335.7001 327.50388]]\n", + " [[1018. 857.5 ]]\n", "\n", - " [[330.57962 310.177 ]]\n", + " [[1021.6408 763.639 ]]\n", "\n", - " [[325.31915 292.1104 ]]\n", + " [[1021.5 671.5 ]]\n", "\n", - " [[320.627 274.28772]]\n", + " [[1023.432 580.4555 ]]\n", "\n", - " [[315.36737 257.47568]]\n", + " [[1026. 485. ]]\n", "\n", - " [[358.15817 340.35425]]\n", + " [[1096.802 948.1617 ]]\n", "\n", - " [[352.91727 322.5884 ]]\n", + " [[1096.4911 859.1596 ]]\n", "\n", - " [[347.64328 304.45084]]\n", + " [[1098.4639 766.04407]]\n", "\n", - " [[342.7978 287.11328]]\n", + " [[1100.124 675.1677 ]]\n", "\n", - " [[337.47632 269.54434]]\n", + " [[1102.5116 583.58484]]\n", "\n", - " [[332.27792 253.0178 ]]\n", + " [[1105.1619 491.93616]]\n", "\n", - " [[375.521 334.54907]]\n", + " [[1169.0957 944.1795 ]]\n", "\n", - " [[370.54572 317.49283]]\n", + " [[1170.1423 853.6245 ]]\n", "\n", - " [[365.13348 300.1963 ]]\n", + " [[1173.897 766.3536 ]]\n", "\n", - " [[359.96573 282.50775]]\n", + " [[1175. 678. ]]\n", "\n", - " [[354.63464 264.84613]]\n", + " [[1177. 588.5 ]]\n", "\n", - " [[349.94232 247.95018]]\n", + " [[1180. 500. ]]\n", "\n", - " [[392.5023 330.13177]]\n", + " [[1238.7026 942.0214 ]]\n", "\n", - " [[387.49005 312.34338]]\n", + " [[1238.2155 855.17236]]\n", "\n", - " [[381.98724 294.8061 ]]\n", + " [[1243.5 768. ]]\n", "\n", - " [[376.97012 277.55432]]\n", + " [[1246. 680.5 ]]\n", "\n", - " [[371.30545 260.40204]]\n", + " [[1248.4957 594.08026]]\n", "\n", - " [[366.55707 243.28087]]\n", + " [[1249.9844 507.89417]]\n", "\n", - " [[409.58173 325.1956 ]]\n", + " [[1304.9393 940.1299 ]]\n", "\n", - " [[404.145 307.3832 ]]\n", + " [[1307.5906 853.12744]]\n", "\n", - " [[398.70715 289.91235]]\n", + " [[1308.3942 768.86584]]\n", "\n", - " [[393.5826 272.64722]]\n", + " [[1314.2432 683.94366]]\n", "\n", - " [[388.28845 255.7331 ]]\n", + " [[1313.9456 600.66425]]\n", "\n", - " [[384.17352 239.4941 ]]\n", + " [[1317.7017 514.2484 ]]\n", "\n", - " [[426.2251 320.06195]]\n", + " [[1370. 935. ]]\n", "\n", - " [[420.66238 302.5737 ]]\n", + " [[1373.642 851.369 ]]\n", "\n", - " [[414.9943 284.84647]]\n", + " [[1374.1757 770.3433 ]]\n", "\n", - " [[410.52255 267.81345]]\n", + " [[1377.4613 686.7194 ]]\n", "\n", - " [[405.14496 251.26006]]\n", + " [[1379.1792 603.9471 ]]\n", "\n", - " [[400.21164 234.16982]]]\n", + " [[1380.5 521. ]]]\n", "ret \n", "\n", "True\n", @@ -578,35 +476,35 @@ "Show images\n", "Camera matrix : \n", "\n", - "[[603.52572321 0. 326.41229818]\n", - " [ 0. 603.65899926 235.9537242 ]\n", - " [ 0. 0. 1. ]]\n", + "[[2.17972257e+03 0.00000000e+00 1.13428062e+03]\n", + " [0.00000000e+00 2.18761121e+03 7.75245832e+02]\n", + " [0.00000000e+00 0.00000000e+00 1.00000000e+00]]\n", "dist : \n", "\n", - "[[ 1.78080527e-01 -1.34103119e+00 -4.51376510e-03 2.52476784e-03\n", - " 4.71440744e+00]]\n", + "[[-2.84714302e-01 6.49693067e+00 -3.24989380e-03 -4.82367998e-03\n", + " -3.72192794e+01]]\n", "rvecs : \n", "\n", - "(array([[ 0.19951224],\n", - " [-0.31463841],\n", - " [-1.43904688]]), array([[-0.19044869],\n", - " [ 0.44388641],\n", - " [-1.47868386]]), array([[ 0.61618287],\n", - " [ 0.13666227],\n", - " [-1.44098723]]), array([[ 0.01147331],\n", - " [-0.24455644],\n", - " [-1.83474358]]))\n", + "(array([[-0.19428481],\n", + " [-0.36544876],\n", + " [-1.41455536]]), array([[-0.11712846],\n", + " [ 0.04631453],\n", + " [-1.55829611]]), array([[-0.46588682],\n", + " [ 0.42968983],\n", + " [-1.52120256]]), array([[ 0.48904751],\n", + " [-0.45473758],\n", + " [-1.50249023]]))\n", "tvecs : \n", "\n", - "(array([[-6.18074691],\n", - " [ 0.64577552],\n", - " [20.4775399 ]]), array([[-1.33022191],\n", - " [ 2.5755565 ],\n", - " [21.87116664]]), array([[-5.25095778],\n", - " [ 0.22170776],\n", - " [22.06269285]]), array([[-2.0724692 ],\n", - " [ 6.70679783],\n", - " [32.30219442]]))\n" + "(array([[-5.23636392e+00],\n", + " [ 2.21828316e-02],\n", + " [ 2.30990979e+01]]), array([[-2.98810499],\n", + " [ 0.46553616],\n", + " [27.74220497]]), array([[-2.73101383],\n", + " [ 1.07991409],\n", + " [26.86513256]]), array([[-3.72306159],\n", + " [ 1.86386959],\n", + " [21.74654085]]))\n" ] } ], @@ -632,7 +530,7 @@ "prev_img_shape = None\n", "\n", "# Extracting path of individual image stored in a given directory\n", - "images = glob.glob('./images/*.jpeg')\n", + "images = glob.glob('./images/*.jpg')\n", "a = 1\n", "for fname in images:\n", " print(\"Load images\")\n", @@ -641,7 +539,7 @@ " # Find the chess board corners\n", " # If desired number of corners are found in the image then ret = true\n", " print(\"Finding chessboard corners\")\n", - " ret, corners = cv2.findChessboardCorners(gray, CHECKERBOARD, None)\n", + " ret, corners = cv2.findChessboardCorners(gray, CHECKERBOARD, cv2.CALIB_CB_ADAPTIVE_THRESH + cv2.CALIB_CB_FAST_CHECK + cv2.CALIB_CB_NORMALIZE_IMAGE)\n", " \n", " print(\"corners \\n\")\n", " print(corners)\n", @@ -691,17 +589,8 @@ "\n", "\n", "\n", - "\n", "\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f1dd04b0-6ae7-49a6-bb70-9dbb9adbc5c4", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/foto_processada1.jpg b/foto_processada1.jpg index 3f4fa285fc39526d27b3774eb58939aa0f3181d0..f44c79c71b8f124fe4157ae42b0c927de5a87a43 100644 Binary files a/foto_processada1.jpg and b/foto_processada1.jpg differ diff --git a/foto_processada2.jpg b/foto_processada2.jpg index 21cb72f80cfc2551d64086e6efb1b93de93d138f..8a25460719fbba82fb118d424605747cde939156 100644 Binary files a/foto_processada2.jpg and b/foto_processada2.jpg differ diff --git a/foto_processada3.jpg b/foto_processada3.jpg index 55bc395cda2efd66a35a347fd3b2e64af24120eb..2fc7635241f89068e3eaf6df784b27009b09b002 100644 Binary files a/foto_processada3.jpg and b/foto_processada3.jpg differ diff --git a/foto_processada4.jpg b/foto_processada4.jpg index 5bf6246fcd8e6da70d6cc53a9800100aef15d2e7..81e22ee601272d3b62f057900fcad6f9b04602d6 100644 Binary files a/foto_processada4.jpg and b/foto_processada4.jpg differ diff --git "a/images/Foto em 20-07-2022 \303\240s 12.04 #2.jpg" "b/images/Foto em 20-07-2022 \303\240s 12.04 #2.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..c5d514d395b950a9ff1fc03fe85ee5dc1d4c8a88 Binary files /dev/null and "b/images/Foto em 20-07-2022 \303\240s 12.04 #2.jpg" differ diff --git "a/images/Foto em 20-07-2022 \303\240s 12.04 #3.jpg" "b/images/Foto em 20-07-2022 \303\240s 12.04 #3.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..299c50f89eddc222c7081f14e8dfed00b5b2817d Binary files /dev/null and "b/images/Foto em 20-07-2022 \303\240s 12.04 #3.jpg" differ diff --git "a/images/Foto em 20-07-2022 \303\240s 12.04.jpg" "b/images/Foto em 20-07-2022 \303\240s 12.04.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..7663e2dc32578560675fc07149dcf521a116fbbf Binary files /dev/null and "b/images/Foto em 20-07-2022 \303\240s 12.04.jpg" differ diff --git "a/images/Foto em 20-07-2022 \303\240s 12.05.jpg" "b/images/Foto em 20-07-2022 \303\240s 12.05.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..992d65e9dad283e850424ac700fbceeb26514c48 Binary files /dev/null and "b/images/Foto em 20-07-2022 \303\240s 12.05.jpg" differ diff --git a/images/photo_2022-07-19 18.46.50.jpeg b/images/photo_2022-07-19 18.46.50.jpeg deleted file mode 100644 index e915d08019f47aaf050426e6934147ab712fbaf7..0000000000000000000000000000000000000000 Binary files a/images/photo_2022-07-19 18.46.50.jpeg and /dev/null differ diff --git a/images/photo_2022-07-19 18.46.53.jpeg b/images/photo_2022-07-19 18.46.53.jpeg deleted file mode 100644 index a8690684ca280d5fe5e217791f1eacba7a2c8916..0000000000000000000000000000000000000000 Binary files a/images/photo_2022-07-19 18.46.53.jpeg and /dev/null differ diff --git a/images/photo_2022-07-19 18.46.55.jpeg b/images/photo_2022-07-19 18.46.55.jpeg deleted file mode 100644 index 3f836b1a4105d7ef7826efd97107661cc2b7207c..0000000000000000000000000000000000000000 Binary files a/images/photo_2022-07-19 18.46.55.jpeg and /dev/null differ diff --git a/images/photo_2022-07-19 18.48.00.jpeg b/images/photo_2022-07-19 18.48.00.jpeg deleted file mode 100644 index 085e2eeee360eacb69b5980595a47e7c06d36fc6..0000000000000000000000000000000000000000 Binary files a/images/photo_2022-07-19 18.48.00.jpeg and /dev/null differ