2025-06-09T17:31:56,163 Created temporary directory: /tmp/pip-build-tracker-ssyphpwh 2025-06-09T17:31:56,164 Initialized build tracking at /tmp/pip-build-tracker-ssyphpwh 2025-06-09T17:31:56,165 Created build tracker: /tmp/pip-build-tracker-ssyphpwh 2025-06-09T17:31:56,165 Entered build tracker: /tmp/pip-build-tracker-ssyphpwh 2025-06-09T17:31:56,166 Created temporary directory: /tmp/pip-wheel-90ewt6n4 2025-06-09T17:31:56,171 Created temporary directory: /tmp/pip-ephem-wheel-cache-_5z6sz3n 2025-06-09T17:31:56,220 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-06-09T17:31:56,222 2 location(s) to search for versions of cvlearn: 2025-06-09T17:31:56,222 * https://pypi.org/simple/cvlearn/ 2025-06-09T17:31:56,222 * https://www.piwheels.org/simple/cvlearn/ 2025-06-09T17:31:56,223 Fetching project page and analyzing links: https://pypi.org/simple/cvlearn/ 2025-06-09T17:31:56,224 Getting page https://pypi.org/simple/cvlearn/ 2025-06-09T17:31:56,225 Found index url https://pypi.org/simple/ 2025-06-09T17:31:56,522 Fetched page https://pypi.org/simple/cvlearn/ as application/vnd.pypi.simple.v1+json 2025-06-09T17:31:56,525 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/ec/68/4f61c181834dd1510c6b348918550ed0d8fe5199f17d3cd8165a3ebeea3d/cvlearn-0.0.5-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,526 Found link https://files.pythonhosted.org/packages/78/4a/6fe350174300e9fe867e88c90290264c43fca660f44148c079f47164d9c9/cvlearn-0.0.5.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.0.5 2025-06-09T17:31:56,527 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/7c/72/9ed1c07df5c15a3c000abb36bf7d37592746aaf287e0919c7cf2ba09affb/cvlearn-0.0.6-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,527 Found link https://files.pythonhosted.org/packages/86/f2/4d93c9edd656285861946ce916bec06e2614de3881adbd6d2ca5ce27058f/cvlearn-0.0.6.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.0.6 2025-06-09T17:31:56,528 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/22/e4/754ebce956c408a36ae589bd63f235aa6f5b50548e2b2e2de288906df7a5/cvlearn-0.0.7-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,529 Found link https://files.pythonhosted.org/packages/2d/ff/5342e6c093d8b00e0c1cd984711eaa4f753f6edc9fd74eb975d0245c5905/cvlearn-0.0.7.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.0.7 2025-06-09T17:31:56,530 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/fd/de/971cfe31375de6218ad39617befa054200630fe86e64299919caace8d427/cvlearn-0.0.8-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,531 Found link https://files.pythonhosted.org/packages/58/24/176c3969b4e227c8ec83715a89f3885a85d000b0a16513d25f9416a22d40/cvlearn-0.0.8.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.0.8 2025-06-09T17:31:56,531 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/04/4e/12570e6e9d039f74407975d30507d0731648daa37ea4b64a034c51e714f1/cvlearn-0.0.9-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,532 Found link https://files.pythonhosted.org/packages/8d/4a/f35ee1541c205e754c8263935fd8d142f73018afc91df8071ab56bac25cb/cvlearn-0.0.9.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.0.9 2025-06-09T17:31:56,533 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/f1/16/5896673c1fdd52390c58851980148f7b347912447b85d7c4f95bd84a6bfe/cvlearn-0.1.0-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,533 Found link https://files.pythonhosted.org/packages/a4/7d/0d53cec05d64e825a7fb991d3c98dc4b5d856ed1296fab5ab6b8d2eca630/cvlearn-0.1.0.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.1.0 2025-06-09T17:31:56,534 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/fd/7b/6913ee3afd01f8817e9269136d0932c909e5c468004fb868f6ed47bd67ba/cvlearn-0.1.1-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,535 Found link https://files.pythonhosted.org/packages/a7/61/f6c3c826841188720817d701a532b2393aee2238a96e65d7d617b337a2a2/cvlearn-0.1.1.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.1.1 2025-06-09T17:31:56,536 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/8d/bb/f68f19bea9987d8cf37d73231952a70bcdc761a5bb18ca51dd20678385f4/cvlearn-0.1.2-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,536 Found link https://files.pythonhosted.org/packages/43/08/1b0875dbc76ad9759ecda11eecf279aad96fd43f975623f66fb22149236d/cvlearn-0.1.2.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.1.2 2025-06-09T17:31:56,537 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/67/e1/0e8ddbfe66637f36b55fa87744614317c3251bdbb0a093772fad549f08a5/cvlearn-0.1.3-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,538 Found link https://files.pythonhosted.org/packages/a3/c6/7af10853916310d4cb36f2f3cd11cca848689a3c8d1215d95cf5e56d4a99/cvlearn-0.1.3.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.1.3 2025-06-09T17:31:56,538 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/c7/38/dbda4ff557c0b17b1cc5331cf66b9be9ed3b2628d9d0c78133b305dc93f1/cvlearn-0.2.3-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,539 Found link https://files.pythonhosted.org/packages/59/23/77026b6972339a22b6c9491f1bd2bfde11e16962ac1e7651144cb99541d9/cvlearn-0.2.3.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.2.3 2025-06-09T17:31:56,539 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/72/23/a01312908126edd709ff3b48a293ffb627087c2a284fbf17d27c1cab47b9/cvlearn-0.3.3-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,540 Found link https://files.pythonhosted.org/packages/ad/f0/4ca43733908aaa3d2621bb5c4165c9aba53c0fe75c339c7f7781d11a767b/cvlearn-0.3.3.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.3.3 2025-06-09T17:31:56,541 Skipping link: No binaries permitted for cvlearn: https://files.pythonhosted.org/packages/33/ea/27944a646fde84d0585e076d818bd9f38f267a248d9606d071616393d5bb/cvlearn-0.4.3-py3-none-any.whl (from https://pypi.org/simple/cvlearn/) 2025-06-09T17:31:56,541 Found link https://files.pythonhosted.org/packages/fa/99/573d4cf3d968fdbd4e0be5364a7484f881f4608f267ac2f8dd35d0d8d852/cvlearn-0.4.3.tar.gz (from https://pypi.org/simple/cvlearn/), version: 0.4.3 2025-06-09T17:31:56,542 Fetching project page and analyzing links: https://www.piwheels.org/simple/cvlearn/ 2025-06-09T17:31:56,543 Getting page https://www.piwheels.org/simple/cvlearn/ 2025-06-09T17:31:56,544 Found index url https://www.piwheels.org/simple/ 2025-06-09T17:31:56,702 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:992)'))': /simple/cvlearn/ 2025-06-09T17:31:57,358 WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:992)'))': /simple/cvlearn/ 2025-06-09T17:31:58,514 WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:992)'))': /simple/cvlearn/ 2025-06-09T17:32:00,673 WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:992)'))': /simple/cvlearn/ 2025-06-09T17:32:04,842 WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:992)'))': /simple/cvlearn/ 2025-06-09T17:32:05,004 Could not fetch URL https://www.piwheels.org/simple/cvlearn/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='www.piwheels.org', port=443): Max retries exceeded with url: /simple/cvlearn/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:992)'))) - skipping 2025-06-09T17:32:05,006 Skipping link: not a file: https://www.piwheels.org/simple/cvlearn/ 2025-06-09T17:32:05,006 Skipping link: not a file: https://pypi.org/simple/cvlearn/ 2025-06-09T17:32:05,026 Given no hashes to check 1 links for project 'cvlearn': discarding no candidates 2025-06-09T17:32:05,028 Collecting cvlearn==0.3.3 2025-06-09T17:32:05,030 Created temporary directory: /tmp/pip-unpack-zkvf1bqw 2025-06-09T17:32:05,259 Downloading cvlearn-0.3.3.tar.gz (8.0 kB) 2025-06-09T17:32:05,299 Added cvlearn==0.3.3 from https://files.pythonhosted.org/packages/ad/f0/4ca43733908aaa3d2621bb5c4165c9aba53c0fe75c339c7f7781d11a767b/cvlearn-0.3.3.tar.gz to build tracker '/tmp/pip-build-tracker-ssyphpwh' 2025-06-09T17:32:05,301 Running setup.py (path:/tmp/pip-wheel-90ewt6n4/cvlearn_eaab464cf5c14bfaa6deb8970f9e322e/setup.py) egg_info for package cvlearn 2025-06-09T17:32:05,302 Created temporary directory: /tmp/pip-pip-egg-info-9ub4jkhe 2025-06-09T17:32:05,303 Preparing metadata (setup.py): started 2025-06-09T17:32:05,304 Running command python setup.py egg_info 2025-06-09T17:32:06,253 # cvlearn 2025-06-09T17:32:06,254 An easy-to-use package that helps with hand tracking, face detection, and more using OpenCV. 2025-06-09T17:32:06,255 --- 2025-06-09T17:32:06,256 ## Installation 2025-06-09T17:32:06,257 * Use **Python 3.x** 2025-06-09T17:32:06,258 * Open your terminal or command prompt and run: 2025-06-09T17:32:06,259 ```bash 2025-06-09T17:32:06,259 pip install cvlearn 2025-06-09T17:32:06,260 ``` 2025-06-09T17:32:06,261 --- 2025-06-09T17:32:06,262 ## Dependencies 2025-06-09T17:32:06,263 * python 3.x 2025-06-09T17:32:06,264 * opencv-python 2025-06-09T17:32:06,264 * numpy 2025-06-09T17:32:06,265 * mediapipe 2025-06-09T17:32:06,266 --- 2025-06-09T17:32:06,267 ## Examples 2025-06-09T17:32:06,268 ### Hand Tracking 2025-06-09T17:32:06,269 ```python 2025-06-09T17:32:06,270 from cvlearn import HandTrackingModule as handTracker 2025-06-09T17:32:06,271 import cv2 2025-06-09T17:32:06,272 cap = cv2.VideoCapture(0) 2025-06-09T17:32:06,272 detector = handTracker.handDetector() 2025-06-09T17:32:06,273 while True: 2025-06-09T17:32:06,274 ret, img = cap.read() 2025-06-09T17:32:06,274 img = detector.findHands(img) 2025-06-09T17:32:06,276 cv2.imshow("Result", img) 2025-06-09T17:32:06,276 cv2.waitKey(1) 2025-06-09T17:32:06,277 ``` 2025-06-09T17:32:06,278 **Result:** 2025-06-09T17:32:06,279 ![Hand Tracking](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/handTracking.jpg) 2025-06-09T17:32:06,280 --- 2025-06-09T17:32:06,281 ### Face Detection 2025-06-09T17:32:06,282 ```python 2025-06-09T17:32:06,283 from cvlearn import FaceDetection as faceDetector 2025-06-09T17:32:06,283 import cv2 2025-06-09T17:32:06,284 cap = cv2.VideoCapture(0) 2025-06-09T17:32:06,285 detector = faceDetector.FaceDetector() 2025-06-09T17:32:06,286 while True: 2025-06-09T17:32:06,287 ret, img = cap.read() 2025-06-09T17:32:06,288 img = detector.findFaces(img) 2025-06-09T17:32:06,289 cv2.imshow("Result", img) 2025-06-09T17:32:06,289 cv2.waitKey(1) 2025-06-09T17:32:06,290 ``` 2025-06-09T17:32:06,291 **Result:** 2025-06-09T17:32:06,293 ![Face Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection.jpg) 2025-06-09T17:32:06,294 **Side View:** 2025-06-09T17:32:06,295 ![Face Side View](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection2.jpg) 2025-06-09T17:32:06,296 --- 2025-06-09T17:32:06,296 ### Face Mesh 2025-06-09T17:32:06,297 ```python 2025-06-09T17:32:06,298 from cvlearn import FaceMesh as fms 2025-06-09T17:32:06,298 import cv2 2025-06-09T17:32:06,299 cap = cv2.VideoCapture(0) 2025-06-09T17:32:06,300 detector = fms.FaceMeshDetector() 2025-06-09T17:32:06,301 while True: 2025-06-09T17:32:06,301 ret, img = cap.read() 2025-06-09T17:32:06,302 img, face = detector.findFaceMesh(img) 2025-06-09T17:32:06,303 cv2.imshow("Result", img) 2025-06-09T17:32:06,303 cv2.waitKey(1) 2025-06-09T17:32:06,304 ``` 2025-06-09T17:32:06,305 **Result:** 2025-06-09T17:32:06,306 ![Face Mesh](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceMesh.jpg) 2025-06-09T17:32:06,307 --- 2025-06-09T17:32:06,308 ### Finger Counting 2025-06-09T17:32:06,309 ```python 2025-06-09T17:32:06,309 from cvlearn import FingerCounter as fc 2025-06-09T17:32:06,310 import cvlearn.HandTrackingModule as handTracker 2025-06-09T17:32:06,310 import cv2 2025-06-09T17:32:06,311 cap = cv2.VideoCapture(0) 2025-06-09T17:32:06,312 detector = handTracker.handDetector(maxHands=1) 2025-06-09T17:32:06,312 counter = fc.FingerCounter() 2025-06-09T17:32:06,313 while True: 2025-06-09T17:32:06,314 ret, frame = cap.read() 2025-06-09T17:32:06,314 frame = cv2.flip(frame, 180) 2025-06-09T17:32:06,315 frame = detector.findHands(frame) 2025-06-09T17:32:06,316 lmList, bbox = detector.findPosition(frame) 2025-06-09T17:32:06,317 if lmList: 2025-06-09T17:32:06,318 frame = counter.drawCountedFingers(frame, lmList, bbox) 2025-06-09T17:32:06,319 cv2.imshow("res", frame) 2025-06-09T17:32:06,319 key = cv2.waitKey(1) 2025-06-09T17:32:06,320 if key == 27: 2025-06-09T17:32:06,320 break 2025-06-09T17:32:06,321 cv2.destroyAllWindows() 2025-06-09T17:32:06,322 ``` 2025-06-09T17:32:06,323 **Result:** 2025-06-09T17:32:06,324 ![Finger Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/fingerCounter.jpg) 2025-06-09T17:32:06,325 --- 2025-06-09T17:32:06,326 ### Two Hands Finger Counting 2025-06-09T17:32:06,327 ```python 2025-06-09T17:32:06,328 from cvlearn import TwoHandsFingerCounter as fc 2025-06-09T17:32:06,328 import cv2 2025-06-09T17:32:06,329 cap = cv2.VideoCapture(0) 2025-06-09T17:32:06,330 counter = fc.FingerCounter() 2025-06-09T17:32:06,331 while True: 2025-06-09T17:32:06,331 ret, frame = cap.read() 2025-06-09T17:32:06,332 frame = counter.drawCountedFingers(frame) 2025-06-09T17:32:06,333 cv2.imshow("res", frame) 2025-06-09T17:32:06,334 key = cv2.waitKey(1) 2025-06-09T17:32:06,334 if key == 27: 2025-06-09T17:32:06,335 break 2025-06-09T17:32:06,336 cv2.destroyAllWindows() 2025-06-09T17:32:06,336 ``` 2025-06-09T17:32:06,337 **Result:** 2025-06-09T17:32:06,339 ![Two Hands Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/MultipleHandsFingerCounter.jpg) 2025-06-09T17:32:06,340 --- 2025-06-09T17:32:06,341 ### Pose Detection 2025-06-09T17:32:06,342 ```python 2025-06-09T17:32:06,343 import cv2 2025-06-09T17:32:06,343 import cvlearn 2025-06-09T17:32:06,344 from cvlearn import PoseDetector, Utils 2025-06-09T17:32:06,345 cap = cv2.VideoCapture(0) 2025-06-09T17:32:06,345 detector = PoseDetector.PoseDetector(detectionCon=0.5, trackCon=0.5) 2025-06-09T17:32:06,347 while True: 2025-06-09T17:32:06,347 success, img = cap.read() 2025-06-09T17:32:06,348 img = detector.findPose(img) 2025-06-09T17:32:06,348 lmList = detector.findLandmarks(img) 2025-06-09T17:32:06,350 cv2.imshow("Image", img) 2025-06-09T17:32:06,350 if cv2.waitKey(1) & 0xFF == ord('q'): 2025-06-09T17:32:06,351 break 2025-06-09T17:32:06,352 cap.release() 2025-06-09T17:32:06,353 cv2.destroyAllWindows() 2025-06-09T17:32:06,353 ``` 2025-06-09T17:32:06,354 **Result:** 2025-06-09T17:32:06,355 ![Pose Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/poseDetection.jpg) 2025-06-09T17:32:06,356 running egg_info 2025-06-09T17:32:06,356 creating /tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info 2025-06-09T17:32:06,357 writing /tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info/PKG-INFO 2025-06-09T17:32:06,357 writing dependency_links to /tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info/dependency_links.txt 2025-06-09T17:32:06,358 writing requirements to /tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info/requires.txt 2025-06-09T17:32:06,358 writing top-level names to /tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info/top_level.txt 2025-06-09T17:32:06,359 writing manifest file '/tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info/SOURCES.txt' 2025-06-09T17:32:06,398 reading manifest file '/tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info/SOURCES.txt' 2025-06-09T17:32:06,402 writing manifest file '/tmp/pip-pip-egg-info-9ub4jkhe/cvlearn.egg-info/SOURCES.txt' 2025-06-09T17:32:06,512 Preparing metadata (setup.py): finished with status 'done' 2025-06-09T17:32:06,517 Source in /tmp/pip-wheel-90ewt6n4/cvlearn_eaab464cf5c14bfaa6deb8970f9e322e has version 0.3.3, which satisfies requirement cvlearn==0.3.3 from https://files.pythonhosted.org/packages/ad/f0/4ca43733908aaa3d2621bb5c4165c9aba53c0fe75c339c7f7781d11a767b/cvlearn-0.3.3.tar.gz 2025-06-09T17:32:06,518 Removed cvlearn==0.3.3 from https://files.pythonhosted.org/packages/ad/f0/4ca43733908aaa3d2621bb5c4165c9aba53c0fe75c339c7f7781d11a767b/cvlearn-0.3.3.tar.gz from build tracker '/tmp/pip-build-tracker-ssyphpwh' 2025-06-09T17:32:06,523 Created temporary directory: /tmp/pip-unpack-e8ldaxq3 2025-06-09T17:32:06,525 Created temporary directory: /tmp/pip-unpack-b8km_d3u 2025-06-09T17:32:06,525 Building wheels for collected packages: cvlearn 2025-06-09T17:32:06,530 Created temporary directory: /tmp/pip-wheel-oq_enisp 2025-06-09T17:32:06,530 DEPRECATION: Building 'cvlearn' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'cvlearn'. Discussion can be found at https://github.com/pypa/pip/issues/6334 2025-06-09T17:32:06,532 Building wheel for cvlearn (setup.py): started 2025-06-09T17:32:06,533 Destination directory: /tmp/pip-wheel-oq_enisp 2025-06-09T17:32:06,533 Running command python setup.py bdist_wheel 2025-06-09T17:32:07,022 # cvlearn 2025-06-09T17:32:07,023 An easy-to-use package that helps with hand tracking, face detection, and more using OpenCV. 2025-06-09T17:32:07,024 --- 2025-06-09T17:32:07,025 ## Installation 2025-06-09T17:32:07,026 * Use **Python 3.x** 2025-06-09T17:32:07,027 * Open your terminal or command prompt and run: 2025-06-09T17:32:07,028 ```bash 2025-06-09T17:32:07,029 pip install cvlearn 2025-06-09T17:32:07,029 ``` 2025-06-09T17:32:07,030 --- 2025-06-09T17:32:07,032 ## Dependencies 2025-06-09T17:32:07,033 * python 3.x 2025-06-09T17:32:07,033 * opencv-python 2025-06-09T17:32:07,034 * numpy 2025-06-09T17:32:07,034 * mediapipe 2025-06-09T17:32:07,035 --- 2025-06-09T17:32:07,037 ## Examples 2025-06-09T17:32:07,038 ### Hand Tracking 2025-06-09T17:32:07,039 ```python 2025-06-09T17:32:07,040 from cvlearn import HandTrackingModule as handTracker 2025-06-09T17:32:07,040 import cv2 2025-06-09T17:32:07,041 cap = cv2.VideoCapture(0) 2025-06-09T17:32:07,042 detector = handTracker.handDetector() 2025-06-09T17:32:07,043 while True: 2025-06-09T17:32:07,043 ret, img = cap.read() 2025-06-09T17:32:07,044 img = detector.findHands(img) 2025-06-09T17:32:07,045 cv2.imshow("Result", img) 2025-06-09T17:32:07,046 cv2.waitKey(1) 2025-06-09T17:32:07,046 ``` 2025-06-09T17:32:07,047 **Result:** 2025-06-09T17:32:07,048 ![Hand Tracking](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/handTracking.jpg) 2025-06-09T17:32:07,049 --- 2025-06-09T17:32:07,050 ### Face Detection 2025-06-09T17:32:07,051 ```python 2025-06-09T17:32:07,051 from cvlearn import FaceDetection as faceDetector 2025-06-09T17:32:07,052 import cv2 2025-06-09T17:32:07,053 cap = cv2.VideoCapture(0) 2025-06-09T17:32:07,053 detector = faceDetector.FaceDetector() 2025-06-09T17:32:07,054 while True: 2025-06-09T17:32:07,055 ret, img = cap.read() 2025-06-09T17:32:07,055 img = detector.findFaces(img) 2025-06-09T17:32:07,056 cv2.imshow("Result", img) 2025-06-09T17:32:07,056 cv2.waitKey(1) 2025-06-09T17:32:07,057 ``` 2025-06-09T17:32:07,058 **Result:** 2025-06-09T17:32:07,059 ![Face Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection.jpg) 2025-06-09T17:32:07,060 **Side View:** 2025-06-09T17:32:07,061 ![Face Side View](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection2.jpg) 2025-06-09T17:32:07,062 --- 2025-06-09T17:32:07,063 ### Face Mesh 2025-06-09T17:32:07,064 ```python 2025-06-09T17:32:07,065 from cvlearn import FaceMesh as fms 2025-06-09T17:32:07,065 import cv2 2025-06-09T17:32:07,066 cap = cv2.VideoCapture(0) 2025-06-09T17:32:07,067 detector = fms.FaceMeshDetector() 2025-06-09T17:32:07,068 while True: 2025-06-09T17:32:07,068 ret, img = cap.read() 2025-06-09T17:32:07,069 img, face = detector.findFaceMesh(img) 2025-06-09T17:32:07,070 cv2.imshow("Result", img) 2025-06-09T17:32:07,071 cv2.waitKey(1) 2025-06-09T17:32:07,071 ``` 2025-06-09T17:32:07,072 **Result:** 2025-06-09T17:32:07,073 ![Face Mesh](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceMesh.jpg) 2025-06-09T17:32:07,074 --- 2025-06-09T17:32:07,075 ### Finger Counting 2025-06-09T17:32:07,076 ```python 2025-06-09T17:32:07,077 from cvlearn import FingerCounter as fc 2025-06-09T17:32:07,077 import cvlearn.HandTrackingModule as handTracker 2025-06-09T17:32:07,078 import cv2 2025-06-09T17:32:07,079 cap = cv2.VideoCapture(0) 2025-06-09T17:32:07,080 detector = handTracker.handDetector(maxHands=1) 2025-06-09T17:32:07,080 counter = fc.FingerCounter() 2025-06-09T17:32:07,082 while True: 2025-06-09T17:32:07,082 ret, frame = cap.read() 2025-06-09T17:32:07,083 frame = cv2.flip(frame, 180) 2025-06-09T17:32:07,084 frame = detector.findHands(frame) 2025-06-09T17:32:07,085 lmList, bbox = detector.findPosition(frame) 2025-06-09T17:32:07,086 if lmList: 2025-06-09T17:32:07,086 frame = counter.drawCountedFingers(frame, lmList, bbox) 2025-06-09T17:32:07,088 cv2.imshow("res", frame) 2025-06-09T17:32:07,088 key = cv2.waitKey(1) 2025-06-09T17:32:07,089 if key == 27: 2025-06-09T17:32:07,089 break 2025-06-09T17:32:07,090 cv2.destroyAllWindows() 2025-06-09T17:32:07,091 ``` 2025-06-09T17:32:07,092 **Result:** 2025-06-09T17:32:07,093 ![Finger Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/fingerCounter.jpg) 2025-06-09T17:32:07,094 --- 2025-06-09T17:32:07,095 ### Two Hands Finger Counting 2025-06-09T17:32:07,097 ```python 2025-06-09T17:32:07,097 from cvlearn import TwoHandsFingerCounter as fc 2025-06-09T17:32:07,098 import cv2 2025-06-09T17:32:07,099 cap = cv2.VideoCapture(0) 2025-06-09T17:32:07,100 counter = fc.FingerCounter() 2025-06-09T17:32:07,101 while True: 2025-06-09T17:32:07,102 ret, frame = cap.read() 2025-06-09T17:32:07,102 frame = counter.drawCountedFingers(frame) 2025-06-09T17:32:07,104 cv2.imshow("res", frame) 2025-06-09T17:32:07,104 key = cv2.waitKey(1) 2025-06-09T17:32:07,105 if key == 27: 2025-06-09T17:32:07,105 break 2025-06-09T17:32:07,107 cv2.destroyAllWindows() 2025-06-09T17:32:07,107 ``` 2025-06-09T17:32:07,108 **Result:** 2025-06-09T17:32:07,109 ![Two Hands Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/MultipleHandsFingerCounter.jpg) 2025-06-09T17:32:07,110 --- 2025-06-09T17:32:07,111 ### Pose Detection 2025-06-09T17:32:07,112 ```python 2025-06-09T17:32:07,113 import cv2 2025-06-09T17:32:07,113 import cvlearn 2025-06-09T17:32:07,114 from cvlearn import PoseDetector, Utils 2025-06-09T17:32:07,115 cap = cv2.VideoCapture(0) 2025-06-09T17:32:07,115 detector = PoseDetector.PoseDetector(detectionCon=0.5, trackCon=0.5) 2025-06-09T17:32:07,116 while True: 2025-06-09T17:32:07,117 success, img = cap.read() 2025-06-09T17:32:07,117 img = detector.findPose(img) 2025-06-09T17:32:07,118 lmList = detector.findLandmarks(img) 2025-06-09T17:32:07,119 cv2.imshow("Image", img) 2025-06-09T17:32:07,119 if cv2.waitKey(1) & 0xFF == ord('q'): 2025-06-09T17:32:07,120 break 2025-06-09T17:32:07,121 cap.release() 2025-06-09T17:32:07,121 cv2.destroyAllWindows() 2025-06-09T17:32:07,122 ``` 2025-06-09T17:32:07,123 **Result:** 2025-06-09T17:32:07,124 ![Pose Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/poseDetection.jpg) 2025-06-09T17:32:07,405 running bdist_wheel 2025-06-09T17:32:07,542 running build 2025-06-09T17:32:07,542 running build_py 2025-06-09T17:32:07,573 creating build/lib/cvlearn 2025-06-09T17:32:07,575 copying cvlearn/__init__.py -> build/lib/cvlearn 2025-06-09T17:32:07,578 copying cvlearn/FaceDetection.py -> build/lib/cvlearn 2025-06-09T17:32:07,580 copying cvlearn/PoseDetector.py -> build/lib/cvlearn 2025-06-09T17:32:07,582 copying cvlearn/HandTrackingModule.py -> build/lib/cvlearn 2025-06-09T17:32:07,585 copying cvlearn/Utils.py -> build/lib/cvlearn 2025-06-09T17:32:07,587 copying cvlearn/FaceMesh.py -> build/lib/cvlearn 2025-06-09T17:32:07,589 copying cvlearn/TwoHandsFingerCounter.py -> build/lib/cvlearn 2025-06-09T17:32:07,592 copying cvlearn/FingerCounter.py -> build/lib/cvlearn 2025-06-09T17:32:07,625 /usr/local/lib/python3.11/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 2025-06-09T17:32:07,625 !! 2025-06-09T17:32:07,626 ******************************************************************************** 2025-06-09T17:32:07,627 Please avoid running ``setup.py`` directly. 2025-06-09T17:32:07,627 Instead, use pypa/build, pypa/installer or other 2025-06-09T17:32:07,628 standards-based tools. 2025-06-09T17:32:07,629 By 2025-Oct-31, you need to update your project and remove deprecated calls 2025-06-09T17:32:07,629 or your builds will no longer be supported. 2025-06-09T17:32:07,630 See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 2025-06-09T17:32:07,631 ******************************************************************************** 2025-06-09T17:32:07,632 !! 2025-06-09T17:32:07,633 self.initialize_options() 2025-06-09T17:32:07,653 installing to build/bdist.linux-armv7l/wheel 2025-06-09T17:32:07,654 running install 2025-06-09T17:32:07,677 running install_lib 2025-06-09T17:32:07,705 creating build/bdist.linux-armv7l/wheel 2025-06-09T17:32:07,707 creating build/bdist.linux-armv7l/wheel/cvlearn 2025-06-09T17:32:07,709 copying build/lib/cvlearn/__init__.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,711 copying build/lib/cvlearn/FaceDetection.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,713 copying build/lib/cvlearn/PoseDetector.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,715 copying build/lib/cvlearn/HandTrackingModule.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,717 copying build/lib/cvlearn/Utils.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,719 copying build/lib/cvlearn/FaceMesh.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,721 copying build/lib/cvlearn/TwoHandsFingerCounter.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,723 copying build/lib/cvlearn/FingerCounter.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-09T17:32:07,725 running install_egg_info 2025-06-09T17:32:07,760 running egg_info 2025-06-09T17:32:07,788 writing cvlearn.egg-info/PKG-INFO 2025-06-09T17:32:07,791 writing dependency_links to cvlearn.egg-info/dependency_links.txt 2025-06-09T17:32:07,793 writing requirements to cvlearn.egg-info/requires.txt 2025-06-09T17:32:07,794 writing top-level names to cvlearn.egg-info/top_level.txt 2025-06-09T17:32:07,825 reading manifest file 'cvlearn.egg-info/SOURCES.txt' 2025-06-09T17:32:07,831 writing manifest file 'cvlearn.egg-info/SOURCES.txt' 2025-06-09T17:32:07,832 Copying cvlearn.egg-info to build/bdist.linux-armv7l/wheel/./cvlearn-0.3.3-py3.11.egg-info 2025-06-09T17:32:07,843 running install_scripts 2025-06-09T17:32:07,854 creating build/bdist.linux-armv7l/wheel/cvlearn-0.3.3.dist-info/WHEEL 2025-06-09T17:32:07,856 creating '/tmp/pip-wheel-oq_enisp/cvlearn-0.3.3-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2025-06-09T17:32:07,859 adding 'cvlearn/FaceDetection.py' 2025-06-09T17:32:07,860 adding 'cvlearn/FaceMesh.py' 2025-06-09T17:32:07,862 adding 'cvlearn/FingerCounter.py' 2025-06-09T17:32:07,863 adding 'cvlearn/HandTrackingModule.py' 2025-06-09T17:32:07,864 adding 'cvlearn/PoseDetector.py' 2025-06-09T17:32:07,866 adding 'cvlearn/TwoHandsFingerCounter.py' 2025-06-09T17:32:07,868 adding 'cvlearn/Utils.py' 2025-06-09T17:32:07,869 adding 'cvlearn/__init__.py' 2025-06-09T17:32:07,871 adding 'cvlearn-0.3.3.dist-info/METADATA' 2025-06-09T17:32:07,872 adding 'cvlearn-0.3.3.dist-info/WHEEL' 2025-06-09T17:32:07,873 adding 'cvlearn-0.3.3.dist-info/top_level.txt' 2025-06-09T17:32:07,874 adding 'cvlearn-0.3.3.dist-info/RECORD' 2025-06-09T17:32:07,875 removing build/bdist.linux-armv7l/wheel 2025-06-09T17:32:07,991 Building wheel for cvlearn (setup.py): finished with status 'done' 2025-06-09T17:32:07,994 Created wheel for cvlearn: filename=cvlearn-0.3.3-py3-none-any.whl size=10560 sha256=8d35919338c83421573b63f598a120f4a0e58ed38155cfdd3ac14dc2862368a8 2025-06-09T17:32:07,995 Stored in directory: /tmp/pip-ephem-wheel-cache-_5z6sz3n/wheels/f0/dd/db/51653fe2e1327beac8c5ae32e2aab029db56a48f2d6d44264d 2025-06-09T17:32:08,006 Successfully built cvlearn 2025-06-09T17:32:08,010 Removed build tracker: '/tmp/pip-build-tracker-ssyphpwh'