2025-06-01T04:26:28,608 Created temporary directory: /tmp/pip-build-tracker-wgw1z28j 2025-06-01T04:26:28,609 Initialized build tracking at /tmp/pip-build-tracker-wgw1z28j 2025-06-01T04:26:28,609 Created build tracker: /tmp/pip-build-tracker-wgw1z28j 2025-06-01T04:26:28,610 Entered build tracker: /tmp/pip-build-tracker-wgw1z28j 2025-06-01T04:26:28,611 Created temporary directory: /tmp/pip-wheel-6gsvqr35 2025-06-01T04:26:28,615 Created temporary directory: /tmp/pip-ephem-wheel-cache-j7bjb1o9 2025-06-01T04:26:28,665 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-06-01T04:26:28,667 2 location(s) to search for versions of cvlearn: 2025-06-01T04:26:28,667 * https://pypi.org/simple/cvlearn/ 2025-06-01T04:26:28,667 * https://www.piwheels.org/simple/cvlearn/ 2025-06-01T04:26:28,668 Fetching project page and analyzing links: https://pypi.org/simple/cvlearn/ 2025-06-01T04:26:28,668 Getting page https://pypi.org/simple/cvlearn/ 2025-06-01T04:26:28,670 Found index url https://pypi.org/simple/ 2025-06-01T04:26:28,894 Fetched page https://pypi.org/simple/cvlearn/ as application/vnd.pypi.simple.v1+json 2025-06-01T04:26:28,897 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-01T04:26:28,898 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-01T04:26:28,899 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-01T04:26:28,899 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-01T04:26:28,900 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-01T04:26:28,900 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-01T04:26:28,901 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-01T04:26:28,902 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-01T04:26:28,902 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-01T04:26:28,903 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-01T04:26:28,903 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-01T04:26:28,904 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-01T04:26:28,905 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-01T04:26:28,905 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-01T04:26:28,906 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-01T04:26:28,907 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-01T04:26:28,907 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-01T04:26:28,908 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-01T04:26:28,908 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-01T04:26:28,909 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-01T04:26:28,909 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-01T04:26:28,910 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-01T04:26:28,911 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-01T04:26:28,911 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-01T04:26:28,912 Fetching project page and analyzing links: https://www.piwheels.org/simple/cvlearn/ 2025-06-01T04:26:28,913 Getting page https://www.piwheels.org/simple/cvlearn/ 2025-06-01T04:26:28,914 Found index url https://www.piwheels.org/simple/ 2025-06-01T04:26:29,065 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-01T04:26:29,720 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-01T04:26:30,935 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-01T04:26:33,151 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-01T04:26:37,364 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-01T04:26:37,555 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-01T04:26:37,557 Skipping link: not a file: https://www.piwheels.org/simple/cvlearn/ 2025-06-01T04:26:37,557 Skipping link: not a file: https://pypi.org/simple/cvlearn/ 2025-06-01T04:26:37,576 Given no hashes to check 1 links for project 'cvlearn': discarding no candidates 2025-06-01T04:26:37,577 Collecting cvlearn==0.4.3 2025-06-01T04:26:37,580 Created temporary directory: /tmp/pip-unpack-wv_15cdg 2025-06-01T04:26:37,799 Downloading cvlearn-0.4.3.tar.gz (8.4 kB) 2025-06-01T04:26:37,835 Added cvlearn==0.4.3 from https://files.pythonhosted.org/packages/fa/99/573d4cf3d968fdbd4e0be5364a7484f881f4608f267ac2f8dd35d0d8d852/cvlearn-0.4.3.tar.gz to build tracker '/tmp/pip-build-tracker-wgw1z28j' 2025-06-01T04:26:37,837 Running setup.py (path:/tmp/pip-wheel-6gsvqr35/cvlearn_6beda4e4c8804d7a9a108858085eb7c6/setup.py) egg_info for package cvlearn 2025-06-01T04:26:37,838 Created temporary directory: /tmp/pip-pip-egg-info-shnwryi7 2025-06-01T04:26:37,839 Preparing metadata (setup.py): started 2025-06-01T04:26:37,840 Running command python setup.py egg_info 2025-06-01T04:26:38,725 /usr/local/lib/python3.11/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-06-01T04:26:38,726 !! 2025-06-01T04:26:38,727 ******************************************************************************** 2025-06-01T04:26:38,727 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-06-01T04:26:38,728 License :: OSI Approved :: MIT License 2025-06-01T04:26:38,729 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-06-01T04:26:38,729 ******************************************************************************** 2025-06-01T04:26:38,730 !! 2025-06-01T04:26:38,731 self._finalize_license_expression() 2025-06-01T04:26:38,753 # cvlearn 2025-06-01T04:26:38,754 An easy-to-use package that helps with hand tracking, face detection, and more using OpenCV. 2025-06-01T04:26:38,755 --- 2025-06-01T04:26:38,757 ## Installation 2025-06-01T04:26:38,758 * Use **Python 3.x** 2025-06-01T04:26:38,758 * Open your terminal or command prompt and run: 2025-06-01T04:26:38,759 ```bash 2025-06-01T04:26:38,760 pip install cvlearn 2025-06-01T04:26:38,760 ``` 2025-06-01T04:26:38,761 --- 2025-06-01T04:26:38,762 ## Dependencies 2025-06-01T04:26:38,763 * python 3.x 2025-06-01T04:26:38,764 * opencv-python 2025-06-01T04:26:38,764 * numpy 2025-06-01T04:26:38,765 * mediapipe 2025-06-01T04:26:38,766 --- 2025-06-01T04:26:38,767 ## Examples 2025-06-01T04:26:38,768 ### Hand Tracking 2025-06-01T04:26:38,769 ```python 2025-06-01T04:26:38,770 from cvlearn import HandTrackingModule as handTracker 2025-06-01T04:26:38,770 import cv2 2025-06-01T04:26:38,772 cap = cv2.VideoCapture(0) 2025-06-01T04:26:38,772 detector = handTracker.handDetector() 2025-06-01T04:26:38,773 while True: 2025-06-01T04:26:38,774 ret, img = cap.read() 2025-06-01T04:26:38,774 img = detector.findHands(img) 2025-06-01T04:26:38,775 cv2.imshow("Result", img) 2025-06-01T04:26:38,776 cv2.waitKey(1) 2025-06-01T04:26:38,777 ``` 2025-06-01T04:26:38,778 **Result:** 2025-06-01T04:26:38,779 ![Hand Tracking](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/handTracking.jpg) 2025-06-01T04:26:38,780 --- 2025-06-01T04:26:38,781 ### Face Detection 2025-06-01T04:26:38,781 ```python 2025-06-01T04:26:38,782 from cvlearn import FaceDetection as faceDetector 2025-06-01T04:26:38,782 import cv2 2025-06-01T04:26:38,783 cap = cv2.VideoCapture(0) 2025-06-01T04:26:38,783 detector = faceDetector.FaceDetector() 2025-06-01T04:26:38,784 while True: 2025-06-01T04:26:38,785 ret, img = cap.read() 2025-06-01T04:26:38,785 img = detector.findFaces(img) 2025-06-01T04:26:38,786 cv2.imshow("Result", img) 2025-06-01T04:26:38,786 cv2.waitKey(1) 2025-06-01T04:26:38,787 ``` 2025-06-01T04:26:38,788 **Result:** 2025-06-01T04:26:38,789 ![Face Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection.jpg) 2025-06-01T04:26:38,790 **Side View:** 2025-06-01T04:26:38,790 ![Face Side View](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection2.jpg) 2025-06-01T04:26:38,791 --- 2025-06-01T04:26:38,792 ### Face Mesh 2025-06-01T04:26:38,793 ```python 2025-06-01T04:26:38,793 from cvlearn import FaceMesh as fms 2025-06-01T04:26:38,794 import cv2 2025-06-01T04:26:38,795 cap = cv2.VideoCapture(0) 2025-06-01T04:26:38,795 detector = fms.FaceMeshDetector() 2025-06-01T04:26:38,796 while True: 2025-06-01T04:26:38,796 ret, img = cap.read() 2025-06-01T04:26:38,797 img, face = detector.findFaceMesh(img) 2025-06-01T04:26:38,798 cv2.imshow("Result", img) 2025-06-01T04:26:38,798 cv2.waitKey(1) 2025-06-01T04:26:38,799 ``` 2025-06-01T04:26:38,800 **Result:** 2025-06-01T04:26:38,801 ![Face Mesh](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceMesh.jpg) 2025-06-01T04:26:38,802 --- 2025-06-01T04:26:38,803 ### Finger Counting 2025-06-01T04:26:38,803 ```python 2025-06-01T04:26:38,804 from cvlearn import FingerCounter as fc 2025-06-01T04:26:38,804 import cvlearn.HandTrackingModule as handTracker 2025-06-01T04:26:38,805 import cv2 2025-06-01T04:26:38,806 cap = cv2.VideoCapture(0) 2025-06-01T04:26:38,806 detector = handTracker.handDetector(maxHands=1) 2025-06-01T04:26:38,807 counter = fc.FingerCounter() 2025-06-01T04:26:38,808 while True: 2025-06-01T04:26:38,808 ret, frame = cap.read() 2025-06-01T04:26:38,809 frame = cv2.flip(frame, 180) 2025-06-01T04:26:38,810 frame = detector.findHands(frame) 2025-06-01T04:26:38,810 lmList, bbox = detector.findPosition(frame) 2025-06-01T04:26:38,811 if lmList: 2025-06-01T04:26:38,812 frame = counter.drawCountedFingers(frame, lmList, bbox) 2025-06-01T04:26:38,813 cv2.imshow("res", frame) 2025-06-01T04:26:38,813 key = cv2.waitKey(1) 2025-06-01T04:26:38,814 if key == 27: 2025-06-01T04:26:38,814 break 2025-06-01T04:26:38,815 cv2.destroyAllWindows() 2025-06-01T04:26:38,816 ``` 2025-06-01T04:26:38,817 **Result:** 2025-06-01T04:26:38,818 ![Finger Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/fingerCounter.jpg) 2025-06-01T04:26:38,819 --- 2025-06-01T04:26:38,820 ### Two Hands Finger Counting 2025-06-01T04:26:38,821 ```python 2025-06-01T04:26:38,821 from cvlearn import TwoHandsFingerCounter as fc 2025-06-01T04:26:38,822 import cv2 2025-06-01T04:26:38,823 cap = cv2.VideoCapture(0) 2025-06-01T04:26:38,823 counter = fc.FingerCounter() 2025-06-01T04:26:38,824 while True: 2025-06-01T04:26:38,825 ret, frame = cap.read() 2025-06-01T04:26:38,825 frame = counter.drawCountedFingers(frame) 2025-06-01T04:26:38,827 cv2.imshow("res", frame) 2025-06-01T04:26:38,827 key = cv2.waitKey(1) 2025-06-01T04:26:38,827 if key == 27: 2025-06-01T04:26:38,828 break 2025-06-01T04:26:38,829 cv2.destroyAllWindows() 2025-06-01T04:26:38,830 ``` 2025-06-01T04:26:38,831 **Result:** 2025-06-01T04:26:38,832 ![Two Hands Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/MultipleHandsFingerCounter.jpg) 2025-06-01T04:26:38,833 --- 2025-06-01T04:26:38,834 ### Pose Detection 2025-06-01T04:26:38,834 ```python 2025-06-01T04:26:38,835 import cv2 2025-06-01T04:26:38,835 import cvlearn 2025-06-01T04:26:38,836 from cvlearn import PoseDetector, Utils 2025-06-01T04:26:38,837 cap = cv2.VideoCapture(0) 2025-06-01T04:26:38,837 detector = PoseDetector.PoseDetector(detectionCon=0.5, trackCon=0.5) 2025-06-01T04:26:38,838 while True: 2025-06-01T04:26:38,838 success, img = cap.read() 2025-06-01T04:26:38,839 img = detector.findPose(img) 2025-06-01T04:26:38,839 lmList = detector.findLandmarks(img) 2025-06-01T04:26:38,840 cv2.imshow("Image", img) 2025-06-01T04:26:38,841 if cv2.waitKey(1) & 0xFF == ord('q'): 2025-06-01T04:26:38,841 break 2025-06-01T04:26:38,842 cap.release() 2025-06-01T04:26:38,843 cv2.destroyAllWindows() 2025-06-01T04:26:38,843 ``` 2025-06-01T04:26:38,844 **Result:** 2025-06-01T04:26:38,845 ![Pose Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/poseDetection.jpg) 2025-06-01T04:26:38,846 running egg_info 2025-06-01T04:26:38,846 creating /tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info 2025-06-01T04:26:38,847 writing /tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info/PKG-INFO 2025-06-01T04:26:38,847 writing dependency_links to /tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info/dependency_links.txt 2025-06-01T04:26:38,848 writing requirements to /tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info/requires.txt 2025-06-01T04:26:38,848 writing top-level names to /tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info/top_level.txt 2025-06-01T04:26:38,849 writing manifest file '/tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info/SOURCES.txt' 2025-06-01T04:26:38,887 reading manifest file '/tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info/SOURCES.txt' 2025-06-01T04:26:38,891 writing manifest file '/tmp/pip-pip-egg-info-shnwryi7/cvlearn.egg-info/SOURCES.txt' 2025-06-01T04:26:38,994 Preparing metadata (setup.py): finished with status 'done' 2025-06-01T04:26:38,999 Source in /tmp/pip-wheel-6gsvqr35/cvlearn_6beda4e4c8804d7a9a108858085eb7c6 has version 0.4.3, which satisfies requirement cvlearn==0.4.3 from https://files.pythonhosted.org/packages/fa/99/573d4cf3d968fdbd4e0be5364a7484f881f4608f267ac2f8dd35d0d8d852/cvlearn-0.4.3.tar.gz 2025-06-01T04:26:39,000 Removed cvlearn==0.4.3 from https://files.pythonhosted.org/packages/fa/99/573d4cf3d968fdbd4e0be5364a7484f881f4608f267ac2f8dd35d0d8d852/cvlearn-0.4.3.tar.gz from build tracker '/tmp/pip-build-tracker-wgw1z28j' 2025-06-01T04:26:39,005 Created temporary directory: /tmp/pip-unpack-sjdmskjw 2025-06-01T04:26:39,006 Created temporary directory: /tmp/pip-unpack-t5b2rxkk 2025-06-01T04:26:39,007 Building wheels for collected packages: cvlearn 2025-06-01T04:26:39,011 Created temporary directory: /tmp/pip-wheel-zr40fckl 2025-06-01T04:26:39,012 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-01T04:26:39,013 Building wheel for cvlearn (setup.py): started 2025-06-01T04:26:39,014 Destination directory: /tmp/pip-wheel-zr40fckl 2025-06-01T04:26:39,015 Running command python setup.py bdist_wheel 2025-06-01T04:26:39,474 # cvlearn 2025-06-01T04:26:39,475 An easy-to-use package that helps with hand tracking, face detection, and more using OpenCV. 2025-06-01T04:26:39,476 --- 2025-06-01T04:26:39,477 ## Installation 2025-06-01T04:26:39,478 * Use **Python 3.x** 2025-06-01T04:26:39,479 * Open your terminal or command prompt and run: 2025-06-01T04:26:39,480 ```bash 2025-06-01T04:26:39,480 pip install cvlearn 2025-06-01T04:26:39,481 ``` 2025-06-01T04:26:39,482 --- 2025-06-01T04:26:39,483 ## Dependencies 2025-06-01T04:26:39,483 * python 3.x 2025-06-01T04:26:39,484 * opencv-python 2025-06-01T04:26:39,484 * numpy 2025-06-01T04:26:39,485 * mediapipe 2025-06-01T04:26:39,485 --- 2025-06-01T04:26:39,486 ## Examples 2025-06-01T04:26:39,487 ### Hand Tracking 2025-06-01T04:26:39,488 ```python 2025-06-01T04:26:39,488 from cvlearn import HandTrackingModule as handTracker 2025-06-01T04:26:39,489 import cv2 2025-06-01T04:26:39,490 cap = cv2.VideoCapture(0) 2025-06-01T04:26:39,490 detector = handTracker.handDetector() 2025-06-01T04:26:39,491 while True: 2025-06-01T04:26:39,491 ret, img = cap.read() 2025-06-01T04:26:39,492 img = detector.findHands(img) 2025-06-01T04:26:39,493 cv2.imshow("Result", img) 2025-06-01T04:26:39,493 cv2.waitKey(1) 2025-06-01T04:26:39,494 ``` 2025-06-01T04:26:39,494 **Result:** 2025-06-01T04:26:39,495 ![Hand Tracking](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/handTracking.jpg) 2025-06-01T04:26:39,496 --- 2025-06-01T04:26:39,497 ### Face Detection 2025-06-01T04:26:39,498 ```python 2025-06-01T04:26:39,499 from cvlearn import FaceDetection as faceDetector 2025-06-01T04:26:39,499 import cv2 2025-06-01T04:26:39,500 cap = cv2.VideoCapture(0) 2025-06-01T04:26:39,501 detector = faceDetector.FaceDetector() 2025-06-01T04:26:39,501 while True: 2025-06-01T04:26:39,502 ret, img = cap.read() 2025-06-01T04:26:39,502 img = detector.findFaces(img) 2025-06-01T04:26:39,503 cv2.imshow("Result", img) 2025-06-01T04:26:39,504 cv2.waitKey(1) 2025-06-01T04:26:39,504 ``` 2025-06-01T04:26:39,505 **Result:** 2025-06-01T04:26:39,506 ![Face Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection.jpg) 2025-06-01T04:26:39,507 **Side View:** 2025-06-01T04:26:39,508 ![Face Side View](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceDetection2.jpg) 2025-06-01T04:26:39,509 --- 2025-06-01T04:26:39,510 ### Face Mesh 2025-06-01T04:26:39,511 ```python 2025-06-01T04:26:39,512 from cvlearn import FaceMesh as fms 2025-06-01T04:26:39,512 import cv2 2025-06-01T04:26:39,514 cap = cv2.VideoCapture(0) 2025-06-01T04:26:39,514 detector = fms.FaceMeshDetector() 2025-06-01T04:26:39,515 while True: 2025-06-01T04:26:39,516 ret, img = cap.read() 2025-06-01T04:26:39,516 img, face = detector.findFaceMesh(img) 2025-06-01T04:26:39,517 cv2.imshow("Result", img) 2025-06-01T04:26:39,518 cv2.waitKey(1) 2025-06-01T04:26:39,518 ``` 2025-06-01T04:26:39,519 **Result:** 2025-06-01T04:26:39,521 ![Face Mesh](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/faceMesh.jpg) 2025-06-01T04:26:39,522 --- 2025-06-01T04:26:39,523 ### Finger Counting 2025-06-01T04:26:39,524 ```python 2025-06-01T04:26:39,524 from cvlearn import FingerCounter as fc 2025-06-01T04:26:39,525 import cvlearn.HandTrackingModule as handTracker 2025-06-01T04:26:39,525 import cv2 2025-06-01T04:26:39,526 cap = cv2.VideoCapture(0) 2025-06-01T04:26:39,527 detector = handTracker.handDetector(maxHands=1) 2025-06-01T04:26:39,527 counter = fc.FingerCounter() 2025-06-01T04:26:39,528 while True: 2025-06-01T04:26:39,529 ret, frame = cap.read() 2025-06-01T04:26:39,529 frame = cv2.flip(frame, 180) 2025-06-01T04:26:39,530 frame = detector.findHands(frame) 2025-06-01T04:26:39,531 lmList, bbox = detector.findPosition(frame) 2025-06-01T04:26:39,532 if lmList: 2025-06-01T04:26:39,533 frame = counter.drawCountedFingers(frame, lmList, bbox) 2025-06-01T04:26:39,533 cv2.imshow("res", frame) 2025-06-01T04:26:39,534 key = cv2.waitKey(1) 2025-06-01T04:26:39,535 if key == 27: 2025-06-01T04:26:39,535 break 2025-06-01T04:26:39,536 cv2.destroyAllWindows() 2025-06-01T04:26:39,537 ``` 2025-06-01T04:26:39,538 **Result:** 2025-06-01T04:26:39,539 ![Finger Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/fingerCounter.jpg) 2025-06-01T04:26:39,539 --- 2025-06-01T04:26:39,540 ### Two Hands Finger Counting 2025-06-01T04:26:39,541 ```python 2025-06-01T04:26:39,542 from cvlearn import TwoHandsFingerCounter as fc 2025-06-01T04:26:39,542 import cv2 2025-06-01T04:26:39,543 cap = cv2.VideoCapture(0) 2025-06-01T04:26:39,543 counter = fc.FingerCounter() 2025-06-01T04:26:39,544 while True: 2025-06-01T04:26:39,544 ret, frame = cap.read() 2025-06-01T04:26:39,545 frame = counter.drawCountedFingers(frame) 2025-06-01T04:26:39,549 cv2.imshow("res", frame) 2025-06-01T04:26:39,549 key = cv2.waitKey(1) 2025-06-01T04:26:39,550 if key == 27: 2025-06-01T04:26:39,550 break 2025-06-01T04:26:39,551 cv2.destroyAllWindows() 2025-06-01T04:26:39,552 ``` 2025-06-01T04:26:39,553 **Result:** 2025-06-01T04:26:39,554 ![Two Hands Counter](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/MultipleHandsFingerCounter.jpg) 2025-06-01T04:26:39,554 --- 2025-06-01T04:26:39,555 ### Pose Detection 2025-06-01T04:26:39,556 ```python 2025-06-01T04:26:39,557 import cv2 2025-06-01T04:26:39,557 import cvlearn 2025-06-01T04:26:39,558 from cvlearn import PoseDetector, Utils 2025-06-01T04:26:39,559 cap = cv2.VideoCapture(0) 2025-06-01T04:26:39,559 detector = PoseDetector.PoseDetector(detectionCon=0.5, trackCon=0.5) 2025-06-01T04:26:39,560 while True: 2025-06-01T04:26:39,561 success, img = cap.read() 2025-06-01T04:26:39,561 img = detector.findPose(img) 2025-06-01T04:26:39,562 lmList = detector.findLandmarks(img) 2025-06-01T04:26:39,563 cv2.imshow("Image", img) 2025-06-01T04:26:39,563 if cv2.waitKey(1) & 0xFF == ord('q'): 2025-06-01T04:26:39,564 break 2025-06-01T04:26:39,565 cap.release() 2025-06-01T04:26:39,565 cv2.destroyAllWindows() 2025-06-01T04:26:39,566 ``` 2025-06-01T04:26:39,567 **Result:** 2025-06-01T04:26:39,568 ![Pose Detection](https://raw.githubusercontent.com/Tanay-ErrorCode/cvlearn/main/images/poseDetection.jpg) 2025-06-01T04:26:39,840 /usr/local/lib/python3.11/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2025-06-01T04:26:39,840 !! 2025-06-01T04:26:39,841 ******************************************************************************** 2025-06-01T04:26:39,842 Please consider removing the following classifiers in favor of a SPDX license expression: 2025-06-01T04:26:39,843 License :: OSI Approved :: MIT License 2025-06-01T04:26:39,844 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2025-06-01T04:26:39,845 ******************************************************************************** 2025-06-01T04:26:39,846 !! 2025-06-01T04:26:39,846 self._finalize_license_expression() 2025-06-01T04:26:39,847 running bdist_wheel 2025-06-01T04:26:39,974 running build 2025-06-01T04:26:39,974 running build_py 2025-06-01T04:26:40,005 creating build/lib/cvlearn 2025-06-01T04:26:40,007 copying cvlearn/FingerCounter.py -> build/lib/cvlearn 2025-06-01T04:26:40,009 copying cvlearn/TwoHandsFingerCounter.py -> build/lib/cvlearn 2025-06-01T04:26:40,012 copying cvlearn/HandTrackingModule.py -> build/lib/cvlearn 2025-06-01T04:26:40,014 copying cvlearn/PoseDetector.py -> build/lib/cvlearn 2025-06-01T04:26:40,016 copying cvlearn/Utils.py -> build/lib/cvlearn 2025-06-01T04:26:40,018 copying cvlearn/__init__.py -> build/lib/cvlearn 2025-06-01T04:26:40,020 copying cvlearn/FaceDetection.py -> build/lib/cvlearn 2025-06-01T04:26:40,022 copying cvlearn/FaceMesh.py -> build/lib/cvlearn 2025-06-01T04:26:40,053 /usr/local/lib/python3.11/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 2025-06-01T04:26:40,053 !! 2025-06-01T04:26:40,055 ******************************************************************************** 2025-06-01T04:26:40,055 Please avoid running ``setup.py`` directly. 2025-06-01T04:26:40,056 Instead, use pypa/build, pypa/installer or other 2025-06-01T04:26:40,056 standards-based tools. 2025-06-01T04:26:40,057 By 2025-Oct-31, you need to update your project and remove deprecated calls 2025-06-01T04:26:40,058 or your builds will no longer be supported. 2025-06-01T04:26:40,058 See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 2025-06-01T04:26:40,059 ******************************************************************************** 2025-06-01T04:26:40,060 !! 2025-06-01T04:26:40,060 self.initialize_options() 2025-06-01T04:26:40,081 installing to build/bdist.linux-armv7l/wheel 2025-06-01T04:26:40,081 running install 2025-06-01T04:26:40,105 running install_lib 2025-06-01T04:26:40,131 creating build/bdist.linux-armv7l/wheel 2025-06-01T04:26:40,133 creating build/bdist.linux-armv7l/wheel/cvlearn 2025-06-01T04:26:40,134 copying build/lib/cvlearn/FingerCounter.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,136 copying build/lib/cvlearn/TwoHandsFingerCounter.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,139 copying build/lib/cvlearn/HandTrackingModule.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,141 copying build/lib/cvlearn/PoseDetector.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,143 copying build/lib/cvlearn/Utils.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,145 copying build/lib/cvlearn/__init__.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,146 copying build/lib/cvlearn/FaceDetection.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,148 copying build/lib/cvlearn/FaceMesh.py -> build/bdist.linux-armv7l/wheel/./cvlearn 2025-06-01T04:26:40,150 running install_egg_info 2025-06-01T04:26:40,183 running egg_info 2025-06-01T04:26:40,209 writing cvlearn.egg-info/PKG-INFO 2025-06-01T04:26:40,212 writing dependency_links to cvlearn.egg-info/dependency_links.txt 2025-06-01T04:26:40,214 writing requirements to cvlearn.egg-info/requires.txt 2025-06-01T04:26:40,215 writing top-level names to cvlearn.egg-info/top_level.txt 2025-06-01T04:26:40,244 reading manifest file 'cvlearn.egg-info/SOURCES.txt' 2025-06-01T04:26:40,250 writing manifest file 'cvlearn.egg-info/SOURCES.txt' 2025-06-01T04:26:40,251 Copying cvlearn.egg-info to build/bdist.linux-armv7l/wheel/./cvlearn-0.4.3-py3.11.egg-info 2025-06-01T04:26:40,261 running install_scripts 2025-06-01T04:26:40,270 creating build/bdist.linux-armv7l/wheel/cvlearn-0.4.3.dist-info/WHEEL 2025-06-01T04:26:40,273 creating '/tmp/pip-wheel-zr40fckl/cvlearn-0.4.3-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2025-06-01T04:26:40,275 adding 'cvlearn/FaceDetection.py' 2025-06-01T04:26:40,277 adding 'cvlearn/FaceMesh.py' 2025-06-01T04:26:40,278 adding 'cvlearn/FingerCounter.py' 2025-06-01T04:26:40,280 adding 'cvlearn/HandTrackingModule.py' 2025-06-01T04:26:40,281 adding 'cvlearn/PoseDetector.py' 2025-06-01T04:26:40,283 adding 'cvlearn/TwoHandsFingerCounter.py' 2025-06-01T04:26:40,284 adding 'cvlearn/Utils.py' 2025-06-01T04:26:40,286 adding 'cvlearn/__init__.py' 2025-06-01T04:26:40,288 adding 'cvlearn-0.4.3.dist-info/METADATA' 2025-06-01T04:26:40,289 adding 'cvlearn-0.4.3.dist-info/WHEEL' 2025-06-01T04:26:40,290 adding 'cvlearn-0.4.3.dist-info/top_level.txt' 2025-06-01T04:26:40,291 adding 'cvlearn-0.4.3.dist-info/RECORD' 2025-06-01T04:26:40,292 removing build/bdist.linux-armv7l/wheel 2025-06-01T04:26:40,401 Building wheel for cvlearn (setup.py): finished with status 'done' 2025-06-01T04:26:40,404 Created wheel for cvlearn: filename=cvlearn-0.4.3-py3-none-any.whl size=10837 sha256=e6ed6929c11bf2c62fdccabb74d0de7e9b1ca6ad79723e9af074c6044d7340c5 2025-06-01T04:26:40,405 Stored in directory: /tmp/pip-ephem-wheel-cache-j7bjb1o9/wheels/9c/2c/82/b64f4eec8b1e7f2bfdc7656b698fbe9f9022c110e140a4e1eb 2025-06-01T04:26:40,417 Successfully built cvlearn 2025-06-01T04:26:40,420 Removed build tracker: '/tmp/pip-build-tracker-wgw1z28j'