2025-06-05T20:57:45,383 Created temporary directory: /tmp/pip-build-tracker-0l7c2aqt 2025-06-05T20:57:45,384 Initialized build tracking at /tmp/pip-build-tracker-0l7c2aqt 2025-06-05T20:57:45,385 Created build tracker: /tmp/pip-build-tracker-0l7c2aqt 2025-06-05T20:57:45,385 Entered build tracker: /tmp/pip-build-tracker-0l7c2aqt 2025-06-05T20:57:45,386 Created temporary directory: /tmp/pip-wheel-l8vwkjxp 2025-06-05T20:57:45,390 Created temporary directory: /tmp/pip-ephem-wheel-cache-m8ay12w8 2025-06-05T20:57:45,437 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-06-05T20:57:45,440 2 location(s) to search for versions of cvlearn: 2025-06-05T20:57:45,440 * https://pypi.org/simple/cvlearn/ 2025-06-05T20:57:45,440 * https://www.piwheels.org/simple/cvlearn/ 2025-06-05T20:57:45,440 Fetching project page and analyzing links: https://pypi.org/simple/cvlearn/ 2025-06-05T20:57:45,441 Getting page https://pypi.org/simple/cvlearn/ 2025-06-05T20:57:45,443 Found index url https://pypi.org/simple/ 2025-06-05T20:57:45,668 Fetched page https://pypi.org/simple/cvlearn/ as application/vnd.pypi.simple.v1+json 2025-06-05T20:57:45,671 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-05T20:57:45,672 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-05T20:57:45,672 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-05T20:57:45,673 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-05T20:57:45,674 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-05T20:57:45,674 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-05T20:57:45,675 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-05T20:57:45,676 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-05T20:57:45,677 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-05T20:57:45,677 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-05T20:57:45,678 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-05T20:57:45,678 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-05T20:57:45,679 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-05T20:57:45,680 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-05T20:57:45,681 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-05T20:57:45,681 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-05T20:57:45,682 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-05T20:57:45,682 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-05T20:57:45,683 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-05T20:57:45,683 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-05T20:57:45,684 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-05T20:57:45,685 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-05T20:57:45,685 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-05T20:57:45,686 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-05T20:57:45,687 Fetching project page and analyzing links: https://www.piwheels.org/simple/cvlearn/ 2025-06-05T20:57:45,687 Getting page https://www.piwheels.org/simple/cvlearn/ 2025-06-05T20:57:45,689 Found index url https://www.piwheels.org/simple/ 2025-06-05T20:57:45,844 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-05T20:57:46,498 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-05T20:57:47,714 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-05T20:57:49,928 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-05T20:57:54,150 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-05T20:57:54,364 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-05T20:57:54,366 Skipping link: not a file: https://www.piwheels.org/simple/cvlearn/ 2025-06-05T20:57:54,366 Skipping link: not a file: https://pypi.org/simple/cvlearn/ 2025-06-05T20:57:54,385 Given no hashes to check 1 links for project 'cvlearn': discarding no candidates 2025-06-05T20:57:54,386 Collecting cvlearn==0.2.3 2025-06-05T20:57:54,389 Created temporary directory: /tmp/pip-unpack-l1jf445x 2025-06-05T20:57:54,617 Downloading cvlearn-0.2.3.tar.gz (8.0 kB) 2025-06-05T20:57:54,658 Added cvlearn==0.2.3 from https://files.pythonhosted.org/packages/59/23/77026b6972339a22b6c9491f1bd2bfde11e16962ac1e7651144cb99541d9/cvlearn-0.2.3.tar.gz to build tracker '/tmp/pip-build-tracker-0l7c2aqt' 2025-06-05T20:57:54,661 Running setup.py (path:/tmp/pip-wheel-l8vwkjxp/cvlearn_d916472489c04d138d7e3cae72bd5dd1/setup.py) egg_info for package cvlearn 2025-06-05T20:57:54,662 Created temporary directory: /tmp/pip-pip-egg-info-syb154g9 2025-06-05T20:57:54,662 Preparing metadata (setup.py): started 2025-06-05T20:57:54,664 Running command python setup.py egg_info 2025-06-05T20:57:55,597 # cvlearn 2025-06-05T20:57:55,598 An easy-to-use package that helps with hand tracking, face detection, and more using OpenCV. 2025-06-05T20:57:55,599 --- 2025-06-05T20:57:55,601 ## Installation 2025-06-05T20:57:55,602 * Use **Python 3.x** 2025-06-05T20:57:55,603 * Open your terminal or command prompt and run: 2025-06-05T20:57:55,604 ```bash 2025-06-05T20:57:55,604 pip install cvlearn 2025-06-05T20:57:55,605 ``` 2025-06-05T20:57:55,606 --- 2025-06-05T20:57:55,608 ## Dependencies 2025-06-05T20:57:55,609 * python 3.x 2025-06-05T20:57:55,610 * opencv-python 2025-06-05T20:57:55,610 * numpy 2025-06-05T20:57:55,611 * mediapipe 2025-06-05T20:57:55,612 --- 2025-06-05T20:57:55,613 ## Examples 2025-06-05T20:57:55,614 ### Hand Tracking 2025-06-05T20:57:55,615 ```python 2025-06-05T20:57:55,616 from cvlearn import HandTrackingModule as handTracker 2025-06-05T20:57:55,617 import cv2 2025-06-05T20:57:55,618 cap = cv2.VideoCapture(0) 2025-06-05T20:57:55,619 detector = handTracker.handDetector() 2025-06-05T20:57:55,620 while True: 2025-06-05T20:57:55,620 ret, img = cap.read() 2025-06-05T20:57:55,621 img = detector.findHands(img) 2025-06-05T20:57:55,622 cv2.imshow("Result", img) 2025-06-05T20:57:55,623 cv2.waitKey(1) 2025-06-05T20:57:55,623 ``` 2025-06-05T20:57:55,624 **Result:** 2025-06-05T20:57:55,625 ![Hand Tracking](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/handTracking.jpg) 2025-06-05T20:57:55,627 --- 2025-06-05T20:57:55,628 ### Face Detection 2025-06-05T20:57:55,629 ```python 2025-06-05T20:57:55,629 from cvlearn import FaceDetection as faceDetector 2025-06-05T20:57:55,630 import cv2 2025-06-05T20:57:55,631 cap = cv2.VideoCapture(0) 2025-06-05T20:57:55,632 detector = faceDetector.FaceDetector() 2025-06-05T20:57:55,633 while True: 2025-06-05T20:57:55,634 ret, img = cap.read() 2025-06-05T20:57:55,634 img = detector.findFaces(img) 2025-06-05T20:57:55,635 cv2.imshow("Result", img) 2025-06-05T20:57:55,636 cv2.waitKey(1) 2025-06-05T20:57:55,637 ``` 2025-06-05T20:57:55,638 **Result:** 2025-06-05T20:57:55,640 ![Face Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection.jpg) 2025-06-05T20:57:55,641 **Side View:** 2025-06-05T20:57:55,642 ![Face Side View](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection2.jpg) 2025-06-05T20:57:55,642 --- 2025-06-05T20:57:55,643 ### Face Mesh 2025-06-05T20:57:55,645 ```python 2025-06-05T20:57:55,645 from cvlearn import FaceMesh as fms 2025-06-05T20:57:55,646 import cv2 2025-06-05T20:57:55,647 cap = cv2.VideoCapture(0) 2025-06-05T20:57:55,647 detector = fms.FaceMeshDetector() 2025-06-05T20:57:55,648 while True: 2025-06-05T20:57:55,649 ret, img = cap.read() 2025-06-05T20:57:55,649 img, face = detector.findFaceMesh(img) 2025-06-05T20:57:55,650 cv2.imshow("Result", img) 2025-06-05T20:57:55,651 cv2.waitKey(1) 2025-06-05T20:57:55,651 ``` 2025-06-05T20:57:55,652 **Result:** 2025-06-05T20:57:55,653 ![Face Mesh](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceMesh.jpg) 2025-06-05T20:57:55,654 --- 2025-06-05T20:57:55,655 ### Finger Counting 2025-06-05T20:57:55,656 ```python 2025-06-05T20:57:55,656 from cvlearn import FingerCounter as fc 2025-06-05T20:57:55,657 import cvlearn.HandTrackingModule as handTracker 2025-06-05T20:57:55,657 import cv2 2025-06-05T20:57:55,658 cap = cv2.VideoCapture(0) 2025-06-05T20:57:55,659 detector = handTracker.handDetector(maxHands=1) 2025-06-05T20:57:55,660 counter = fc.FingerCounter() 2025-06-05T20:57:55,661 while True: 2025-06-05T20:57:55,661 ret, frame = cap.read() 2025-06-05T20:57:55,661 frame = cv2.flip(frame, 180) 2025-06-05T20:57:55,662 frame = detector.findHands(frame) 2025-06-05T20:57:55,663 lmList, bbox = detector.findPosition(frame) 2025-06-05T20:57:55,664 if lmList: 2025-06-05T20:57:55,664 frame = counter.drawCountedFingers(frame, lmList, bbox) 2025-06-05T20:57:55,665 cv2.imshow("res", frame) 2025-06-05T20:57:55,666 key = cv2.waitKey(1) 2025-06-05T20:57:55,667 if key == 27: 2025-06-05T20:57:55,667 break 2025-06-05T20:57:55,668 cv2.destroyAllWindows() 2025-06-05T20:57:55,669 ``` 2025-06-05T20:57:55,670 **Result:** 2025-06-05T20:57:55,671 ![Finger Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/fingerCounter.jpg) 2025-06-05T20:57:55,672 --- 2025-06-05T20:57:55,674 ### Two Hands Finger Counting 2025-06-05T20:57:55,675 ```python 2025-06-05T20:57:55,676 from cvlearn import TwoHandsFingerCounter as fc 2025-06-05T20:57:55,676 import cv2 2025-06-05T20:57:55,677 cap = cv2.VideoCapture(0) 2025-06-05T20:57:55,678 counter = fc.FingerCounter() 2025-06-05T20:57:55,679 while True: 2025-06-05T20:57:55,680 ret, frame = cap.read() 2025-06-05T20:57:55,680 frame = counter.drawCountedFingers(frame) 2025-06-05T20:57:55,681 cv2.imshow("res", frame) 2025-06-05T20:57:55,682 key = cv2.waitKey(1) 2025-06-05T20:57:55,683 if key == 27: 2025-06-05T20:57:55,683 break 2025-06-05T20:57:55,684 cv2.destroyAllWindows() 2025-06-05T20:57:55,685 ``` 2025-06-05T20:57:55,686 **Result:** 2025-06-05T20:57:55,687 ![Two Hands Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/MultipleHandsFingerCounter.jpg) 2025-06-05T20:57:55,688 --- 2025-06-05T20:57:55,689 ### Pose Detection 2025-06-05T20:57:55,691 ```python 2025-06-05T20:57:55,691 import cv2 2025-06-05T20:57:55,692 import cvlearn 2025-06-05T20:57:55,692 from cvlearn import PoseDetector, Utils 2025-06-05T20:57:55,694 cap = cv2.VideoCapture(0) 2025-06-05T20:57:55,694 detector = PoseDetector.PoseDetector(detectionCon=0.5, trackCon=0.5) 2025-06-05T20:57:55,695 while True: 2025-06-05T20:57:55,696 success, img = cap.read() 2025-06-05T20:57:55,697 img = detector.findPose(img) 2025-06-05T20:57:55,697 lmList = detector.findLandmarks(img) 2025-06-05T20:57:55,698 cv2.imshow("Image", img) 2025-06-05T20:57:55,699 if cv2.waitKey(1) & 0xFF == ord('q'): 2025-06-05T20:57:55,700 break 2025-06-05T20:57:55,702 cap.release() 2025-06-05T20:57:55,702 cv2.destroyAllWindows() 2025-06-05T20:57:55,703 ``` 2025-06-05T20:57:55,704 **Result:** 2025-06-05T20:57:55,705 ![Pose Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/poseDetection.jpg) 2025-06-05T20:57:55,706 running egg_info 2025-06-05T20:57:55,706 creating /tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info 2025-06-05T20:57:55,707 writing /tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info/PKG-INFO 2025-06-05T20:57:55,707 writing dependency_links to /tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info/dependency_links.txt 2025-06-05T20:57:55,708 writing requirements to /tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info/requires.txt 2025-06-05T20:57:55,708 writing top-level names to /tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info/top_level.txt 2025-06-05T20:57:55,709 writing manifest file '/tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info/SOURCES.txt' 2025-06-05T20:57:55,757 reading manifest file '/tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info/SOURCES.txt' 2025-06-05T20:57:55,761 writing manifest file '/tmp/pip-pip-egg-info-syb154g9/cvlearn.egg-info/SOURCES.txt' 2025-06-05T20:57:55,865 Preparing metadata (setup.py): finished with status 'done' 2025-06-05T20:57:55,869 Source in /tmp/pip-wheel-l8vwkjxp/cvlearn_d916472489c04d138d7e3cae72bd5dd1 has version 0.2.3, which satisfies requirement cvlearn==0.2.3 from https://files.pythonhosted.org/packages/59/23/77026b6972339a22b6c9491f1bd2bfde11e16962ac1e7651144cb99541d9/cvlearn-0.2.3.tar.gz 2025-06-05T20:57:55,870 Removed cvlearn==0.2.3 from https://files.pythonhosted.org/packages/59/23/77026b6972339a22b6c9491f1bd2bfde11e16962ac1e7651144cb99541d9/cvlearn-0.2.3.tar.gz from build tracker '/tmp/pip-build-tracker-0l7c2aqt' 2025-06-05T20:57:55,876 Created temporary directory: /tmp/pip-unpack-5lh1qnj5 2025-06-05T20:57:55,878 Created temporary directory: /tmp/pip-unpack-1f8fziq1 2025-06-05T20:57:55,878 Building wheels for collected packages: cvlearn 2025-06-05T20:57:55,882 Created temporary directory: /tmp/pip-wheel-biruclhz 2025-06-05T20:57:55,883 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-05T20:57:55,885 Building wheel for cvlearn (setup.py): started 2025-06-05T20:57:55,886 Destination directory: /tmp/pip-wheel-biruclhz 2025-06-05T20:57:55,886 Running command python setup.py bdist_wheel 2025-06-05T20:57:56,352 # cvlearn 2025-06-05T20:57:56,353 An easy-to-use package that helps with hand tracking, face detection, and more using OpenCV. 2025-06-05T20:57:56,355 --- 2025-06-05T20:57:56,356 ## Installation 2025-06-05T20:57:56,357 * Use **Python 3.x** 2025-06-05T20:57:56,358 * Open your terminal or command prompt and run: 2025-06-05T20:57:56,359 ```bash 2025-06-05T20:57:56,360 pip install cvlearn 2025-06-05T20:57:56,360 ``` 2025-06-05T20:57:56,361 --- 2025-06-05T20:57:56,363 ## Dependencies 2025-06-05T20:57:56,364 * python 3.x 2025-06-05T20:57:56,364 * opencv-python 2025-06-05T20:57:56,365 * numpy 2025-06-05T20:57:56,366 * mediapipe 2025-06-05T20:57:56,367 --- 2025-06-05T20:57:56,369 ## Examples 2025-06-05T20:57:56,370 ### Hand Tracking 2025-06-05T20:57:56,372 ```python 2025-06-05T20:57:56,373 from cvlearn import HandTrackingModule as handTracker 2025-06-05T20:57:56,374 import cv2 2025-06-05T20:57:56,376 cap = cv2.VideoCapture(0) 2025-06-05T20:57:56,376 detector = handTracker.handDetector() 2025-06-05T20:57:56,378 while True: 2025-06-05T20:57:56,378 ret, img = cap.read() 2025-06-05T20:57:56,379 img = detector.findHands(img) 2025-06-05T20:57:56,381 cv2.imshow("Result", img) 2025-06-05T20:57:56,381 cv2.waitKey(1) 2025-06-05T20:57:56,382 ``` 2025-06-05T20:57:56,383 **Result:** 2025-06-05T20:57:56,384 ![Hand Tracking](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/handTracking.jpg) 2025-06-05T20:57:56,385 --- 2025-06-05T20:57:56,386 ### Face Detection 2025-06-05T20:57:56,387 ```python 2025-06-05T20:57:56,388 from cvlearn import FaceDetection as faceDetector 2025-06-05T20:57:56,388 import cv2 2025-06-05T20:57:56,389 cap = cv2.VideoCapture(0) 2025-06-05T20:57:56,390 detector = faceDetector.FaceDetector() 2025-06-05T20:57:56,391 while True: 2025-06-05T20:57:56,391 ret, img = cap.read() 2025-06-05T20:57:56,392 img = detector.findFaces(img) 2025-06-05T20:57:56,393 cv2.imshow("Result", img) 2025-06-05T20:57:56,393 cv2.waitKey(1) 2025-06-05T20:57:56,393 ``` 2025-06-05T20:57:56,394 **Result:** 2025-06-05T20:57:56,395 ![Face Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection.jpg) 2025-06-05T20:57:56,396 **Side View:** 2025-06-05T20:57:56,397 ![Face Side View](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection2.jpg) 2025-06-05T20:57:56,398 --- 2025-06-05T20:57:56,399 ### Face Mesh 2025-06-05T20:57:56,400 ```python 2025-06-05T20:57:56,400 from cvlearn import FaceMesh as fms 2025-06-05T20:57:56,401 import cv2 2025-06-05T20:57:56,402 cap = cv2.VideoCapture(0) 2025-06-05T20:57:56,402 detector = fms.FaceMeshDetector() 2025-06-05T20:57:56,403 while True: 2025-06-05T20:57:56,404 ret, img = cap.read() 2025-06-05T20:57:56,404 img, face = detector.findFaceMesh(img) 2025-06-05T20:57:56,406 cv2.imshow("Result", img) 2025-06-05T20:57:56,406 cv2.waitKey(1) 2025-06-05T20:57:56,407 ``` 2025-06-05T20:57:56,407 **Result:** 2025-06-05T20:57:56,409 ![Face Mesh](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceMesh.jpg) 2025-06-05T20:57:56,410 --- 2025-06-05T20:57:56,411 ### Finger Counting 2025-06-05T20:57:56,412 ```python 2025-06-05T20:57:56,413 from cvlearn import FingerCounter as fc 2025-06-05T20:57:56,413 import cvlearn.HandTrackingModule as handTracker 2025-06-05T20:57:56,414 import cv2 2025-06-05T20:57:56,415 cap = cv2.VideoCapture(0) 2025-06-05T20:57:56,415 detector = handTracker.handDetector(maxHands=1) 2025-06-05T20:57:56,416 counter = fc.FingerCounter() 2025-06-05T20:57:56,417 while True: 2025-06-05T20:57:56,418 ret, frame = cap.read() 2025-06-05T20:57:56,418 frame = cv2.flip(frame, 180) 2025-06-05T20:57:56,419 frame = detector.findHands(frame) 2025-06-05T20:57:56,420 lmList, bbox = detector.findPosition(frame) 2025-06-05T20:57:56,421 if lmList: 2025-06-05T20:57:56,422 frame = counter.drawCountedFingers(frame, lmList, bbox) 2025-06-05T20:57:56,423 cv2.imshow("res", frame) 2025-06-05T20:57:56,423 key = cv2.waitKey(1) 2025-06-05T20:57:56,424 if key == 27: 2025-06-05T20:57:56,424 break 2025-06-05T20:57:56,426 cv2.destroyAllWindows() 2025-06-05T20:57:56,426 ``` 2025-06-05T20:57:56,427 **Result:** 2025-06-05T20:57:56,428 ![Finger Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/fingerCounter.jpg) 2025-06-05T20:57:56,429 --- 2025-06-05T20:57:56,431 ### Two Hands Finger Counting 2025-06-05T20:57:56,432 ```python 2025-06-05T20:57:56,432 from cvlearn import TwoHandsFingerCounter as fc 2025-06-05T20:57:56,433 import cv2 2025-06-05T20:57:56,434 cap = cv2.VideoCapture(0) 2025-06-05T20:57:56,434 counter = fc.FingerCounter() 2025-06-05T20:57:56,435 while True: 2025-06-05T20:57:56,436 ret, frame = cap.read() 2025-06-05T20:57:56,437 frame = counter.drawCountedFingers(frame) 2025-06-05T20:57:56,438 cv2.imshow("res", frame) 2025-06-05T20:57:56,438 key = cv2.waitKey(1) 2025-06-05T20:57:56,439 if key == 27: 2025-06-05T20:57:56,439 break 2025-06-05T20:57:56,440 cv2.destroyAllWindows() 2025-06-05T20:57:56,441 ``` 2025-06-05T20:57:56,442 **Result:** 2025-06-05T20:57:56,442 ![Two Hands Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/MultipleHandsFingerCounter.jpg) 2025-06-05T20:57:56,443 --- 2025-06-05T20:57:56,444 ### Pose Detection 2025-06-05T20:57:56,445 ```python 2025-06-05T20:57:56,445 import cv2 2025-06-05T20:57:56,446 import cvlearn 2025-06-05T20:57:56,446 from cvlearn import PoseDetector, Utils 2025-06-05T20:57:56,447 cap = cv2.VideoCapture(0) 2025-06-05T20:57:56,447 detector = PoseDetector.PoseDetector(detectionCon=0.5, trackCon=0.5) 2025-06-05T20:57:56,448 while True: 2025-06-05T20:57:56,448 success, img = cap.read() 2025-06-05T20:57:56,449 img = detector.findPose(img) 2025-06-05T20:57:56,449 lmList = detector.findLandmarks(img) 2025-06-05T20:57:56,450 cv2.imshow("Image", img) 2025-06-05T20:57:56,450 if cv2.waitKey(1) & 0xFF == ord('q'): 2025-06-05T20:57:56,451 break 2025-06-05T20:57:56,452 cap.release() 2025-06-05T20:57:56,452 cv2.destroyAllWindows() 2025-06-05T20:57:56,453 ``` 2025-06-05T20:57:56,454 **Result:** 2025-06-05T20:57:56,455 ![Pose Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/poseDetection.jpg) 2025-06-05T20:57:56,724 running bdist_wheel 2025-06-05T20:57:56,850 running build 2025-06-05T20:57:56,851 running build_py 2025-06-05T20:57:56,881 creating build/lib/cvlearn 2025-06-05T20:57:56,883 copying cvlearn/PoseDetector.py -> build/lib/cvlearn 2025-06-05T20:57:56,885 copying cvlearn/FaceMesh.py -> build/lib/cvlearn 2025-06-05T20:57:56,887 copying cvlearn/__init__.py -> build/lib/cvlearn 2025-06-05T20:57:56,889 copying cvlearn/FingerCounter.py -> build/lib/cvlearn 2025-06-05T20:57:56,891 copying cvlearn/Utils.py -> build/lib/cvlearn 2025-06-05T20:57:56,893 copying cvlearn/FaceDetection.py -> build/lib/cvlearn 2025-06-05T20:57:56,895 copying cvlearn/HandTrackingModule.py -> build/lib/cvlearn 2025-06-05T20:57:56,897 copying cvlearn/TwoHandsFingerCounter.py -> build/lib/cvlearn 2025-06-05T20:57:56,927 /usr/local/lib/python3.11/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 2025-06-05T20:57:56,927 !! 2025-06-05T20:57:56,928 ******************************************************************************** 2025-06-05T20:57:56,929 Please avoid running ``setup.py`` directly. 2025-06-05T20:57:56,930 Instead, use pypa/build, pypa/installer or other 2025-06-05T20:57:56,930 standards-based tools. 2025-06-05T20:57:56,931 By 2025-Oct-31, you need to update your project and remove deprecated calls 2025-06-05T20:57:56,932 or your builds will no longer be supported. 2025-06-05T20:57:56,933 See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 2025-06-05T20:57:56,933 ******************************************************************************** 2025-06-05T20:57:56,934 !! 2025-06-05T20:57:56,935 self.initialize_options() 2025-06-05T20:57:56,955 installing to build/bdist.linux-armv7l/wheel 2025-06-05T20:57:56,956 running install 2025-06-05T20:57:56,980 running install_lib 2025-06-05T20:57:57,006 creating build/bdist.linux-armv7l/wheel 2025-06-05T20:57:57,008 creating build/bdist.linux-armv7l/wheel/cvlearn 2025-06-05T20:57:57,009 copying build/lib/cvlearn/PoseDetector.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,011 copying build/lib/cvlearn/FaceMesh.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,013 copying build/lib/cvlearn/__init__.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,015 copying build/lib/cvlearn/FingerCounter.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,017 copying build/lib/cvlearn/Utils.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,019 copying build/lib/cvlearn/FaceDetection.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,021 copying build/lib/cvlearn/HandTrackingModule.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,023 copying build/lib/cvlearn/TwoHandsFingerCounter.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-05T20:57:57,025 running install_egg_info 2025-06-05T20:57:57,058 running egg_info 2025-06-05T20:57:57,085 writing cvlearn.egg-info/PKG-INFO 2025-06-05T20:57:57,088 writing dependency_links to cvlearn.egg-info/dependency_links.txt 2025-06-05T20:57:57,090 writing requirements to cvlearn.egg-info/requires.txt 2025-06-05T20:57:57,091 writing top-level names to cvlearn.egg-info/top_level.txt 2025-06-05T20:57:57,121 reading manifest file 'cvlearn.egg-info/SOURCES.txt' 2025-06-05T20:57:57,126 writing manifest file 'cvlearn.egg-info/SOURCES.txt' 2025-06-05T20:57:57,127 Copying cvlearn.egg-info to build/bdist.linux-armv7l/wheel/./cvlearn-0.2.3-py3.11.egg-info 2025-06-05T20:57:57,137 running install_scripts 2025-06-05T20:57:57,147 creating build/bdist.linux-armv7l/wheel/cvlearn-0.2.3.dist-info/WHEEL 2025-06-05T20:57:57,150 creating '/tmp/pip-wheel-biruclhz/cvlearn-0.2.3-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2025-06-05T20:57:57,152 adding 'cvlearn/FaceDetection.py' 2025-06-05T20:57:57,154 adding 'cvlearn/FaceMesh.py' 2025-06-05T20:57:57,155 adding 'cvlearn/FingerCounter.py' 2025-06-05T20:57:57,157 adding 'cvlearn/HandTrackingModule.py' 2025-06-05T20:57:57,158 adding 'cvlearn/PoseDetector.py' 2025-06-05T20:57:57,160 adding 'cvlearn/TwoHandsFingerCounter.py' 2025-06-05T20:57:57,162 adding 'cvlearn/Utils.py' 2025-06-05T20:57:57,163 adding 'cvlearn/__init__.py' 2025-06-05T20:57:57,165 adding 'cvlearn-0.2.3.dist-info/METADATA' 2025-06-05T20:57:57,166 adding 'cvlearn-0.2.3.dist-info/WHEEL' 2025-06-05T20:57:57,167 adding 'cvlearn-0.2.3.dist-info/top_level.txt' 2025-06-05T20:57:57,168 adding 'cvlearn-0.2.3.dist-info/RECORD' 2025-06-05T20:57:57,169 removing build/bdist.linux-armv7l/wheel 2025-06-05T20:57:57,279 Building wheel for cvlearn (setup.py): finished with status 'done' 2025-06-05T20:57:57,282 Created wheel for cvlearn: filename=cvlearn-0.2.3-py3-none-any.whl size=10496 sha256=1affb761af5cccc485ab872b8c653c574c6dd0aae9a92ec51a289223bae72f55 2025-06-05T20:57:57,283 Stored in directory: /tmp/pip-ephem-wheel-cache-m8ay12w8/wheels/7c/ff/47/9476474b4f5956745eb7b0cb3b9803988ecca70682e50771ee 2025-06-05T20:57:57,294 Successfully built cvlearn 2025-06-05T20:57:57,298 Removed build tracker: '/tmp/pip-build-tracker-0l7c2aqt'