cv2_tools
Library to help the drawing process with OpenCV. Thought to add labels to the images. Classification of images, etc.
Image generated with face_recognition and drawed with cv2-tools version 2.0.2
Installation
Pre-requisites
You will need to install:
- opencv >= 3.6.2
- numpy >= 1.13.3
- python-constraint >= 1.4.0
You can simply execute:
pip install -r requirements.txt
Finally you can install the library with:
pip install cv2-tools
When you install cv2-tools, it will automatically download numpy but not opencv becouse in some cases you will need another version.
Test
import cv2_tools
print('Name: {}\nVersion:{}\nHelp:{}'.format(cv2_tools.name,cv2_tools.__version__,cv2_tools.help))
webcam_test()
Ussage and Important classes
ManagerCV2
from cv2_tools.Management import ManagerCV2
If you want to work with video or stream, this class will help you mantain your code cleaner while you get more features.
For example:
- Open a a stream (your webcam).
- Reproduce it on real time with max FPS equals to 24.
- Press
escto finish the program. - At the end print average FPS.
from cv2_tools.Managment import ManagerCV2
import cv2
# keystroke=27 is the button `esc`
manager_cv2 = ManagerCV2(cv2.VideoCapture(0), is_stream=True, keystroke=27, wait_key=1, fps_limit=60)
# This for will manage file descriptor for you
for frame in manager_cv2:
cv2.imshow('Example easy manager', frame)
cv2.destroyAllWindows()
print(manager_cv2.get_fps())
If you want to use another button and you don't know the ID, you can check easily using the following code:
from cv2_tools.Managment import ManagerCV2
import cv2
# keystroke=27 is the button `esc`
manager_cv2 = ManagerCV2(cv2.VideoCapture(0), is_stream=True, keystroke=27, wait_key=1, fps_limit=60)
# This for will manage file descriptor for you
for frame in manager_cv2:
# Each time you press a button, you will get its id in your terminal
last_keystroke = manager_cv2.get_last_keystroke()
if last_keystroke != -1:
print(last_keystroke)
cv2.imshow('Easy button checker', frame)
cv2.destroyAllWindows()
SelectorCV2
Firstly create a SelectorCV2 object. You can pass it optional parameters to configure the output.
from cv2_tools.Selection import SelectorCV2
selector = SelectorCV2(color=(200,90,0), filled=True)
Also you can configure it later using the method (all optional parameters):
selector.set_properties()
Now, each time you want to add a selected zone call the method:
"""
Coordinates:
(x1,y1)____(x2,y1)
| |
| |
(x1,y2)____(x2,y2)
Tags (optional parameter):
* It could be a normal string
* A string with '\n'
* A list of strings
* None / '' / [] / False
"""
selector.add_zone((x1,y1,x2,y2),tags=tag)
Finally, when you want to draw all the rectangles execute:
edited_frame = selector.draw(frame)
If you want to use the same object multiple times you can easily change the content inside it:
# This method could help change rectangles to
selector.set_range_valid_rectangles( origin, destination)
# This method could help if you know exactly the indexes that you want to keep
# Default = [], so if you just want to clean the buffer call this method without parameters
set_valid_rectangles(indexes)
If you want, you can see the example detect_faces.py, it also use an open source library called face_recognition.
Metadata
Release files for cv2-tools 2.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cv2_tools-2.4.0.tar.gz | 21.0 kB | Without provenance | Details for cv2_tools-2.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cv2_tools-2.4.0-py3-none-any.whl | Python 3 | none | any | Details for cv2_tools-2.4.0-py3-none-any.whl |
Total release size: 43.6 kB
Release files / cv2_tools-2.4.0.tar.gz
| Download URL | cv2_tools-2.4.0.tar.gz |
|---|---|
| Size | 21.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03312b125d40dd8f4628cdf3802b7a88b0fba9ebc3a8b6c09eda8313087417c6
|
|
BLAKE2b-256 checksum How to use checksums |
045063a2af8b9ed93d811cbfa884191a38597deb0472b3b60f476dc1cc55f2bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7
|
Release files / cv2_tools-2.4.0-py3-none-any.whl
| Download URL | cv2_tools-2.4.0-py3-none-any.whl |
|---|---|
| Size | 22.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
613e2f8618330b783149f38da30ee12fa3360075d9b1e391215fa83af2ee4e5b
|
|
BLAKE2b-256 checksum How to use checksums |
d9a0c14227197b79e4bb626b93338283ba49d52a8bb95bad57c172f0f0ea17e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7
|
Security for cv2-tools 2.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.