Skip to main content

Library to help the drawing process with OpenCV. Thought to add labels to the images. Classification of images, etc.

Project description

cv2_tools

Library to help the drawing process with OpenCV. Thought to add labels to the images. Classification of images, etc.

image

Image generated with Intel Openvino Toolkit and drawed with opencv-draw-tools v0.1.9

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 opencv-draw-tools-fernaperg

When you install opencv-draw-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 esc to 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cv2_tools-2.0.1.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cv2_tools-2.0.1-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file cv2_tools-2.0.1.tar.gz.

File metadata

  • Download URL: cv2_tools-2.0.1.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for cv2_tools-2.0.1.tar.gz
Algorithm Hash digest
SHA256 0a40d1c0e1eb90285c9b85488ce93e9e02e9e0113ba61ba9a2e7fcc85b93eaf0
MD5 c2260e0055bee14c6f1ef55d58513615
BLAKE2b-256 aa108710c9b0f17b38a4f308154f6dadbc3e2233a65cc3cfbbd02a3b6a6d3d59

See more details on using hashes here.

File details

Details for the file cv2_tools-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: cv2_tools-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for cv2_tools-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06cd01be287925725a313ad54199ae073bf05c53b2487c63b4d424cf5402d7dd
MD5 a7c6975d7c2c42b7213fb5fbf3686548
BLAKE2b-256 80dfed101ee09016475cc8774fd97513bffd8099c597dfc52ec9a08932dece3e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page