A bunch of useful wrappers around opencv-python library
Project description
PyCVutils
A bunch of useful wrappers around opencv-python library
Installation:
pip install pycvutils
You can install opencv separately. But just for fun, some extra options exist:
pip install pycvutils[opencv] - adds opencv-python as a subdependency.
pip install pycvutils[headless] - adds opencv-python-headless as a subdependency.
pip install pycvutils[contrib] - adds opencv-contrib-python as a subdependency.
pip install pycvutils[contrib-headless] - adds opencv-contrib-python-headless as a subdependency.
Be aware that different
opencvversions are incompatible with each other.
Examples:
Let's work with such binary image:
import cv2
from pycvutils import convert
from pycvutils.blobs import get_bright_rect
face_img = cv2.imread("docs/img_samples/face.png")
assert get_bright_rect(face_img) == (1, 2, 10, 7)
# works with 3 channels arrays and boolean arrays too
face_img = convert.bgr_to_gray(face_img)
assert get_bright_rect(face_img) == (1, 2, 10, 7)
import cv2
from pycvutils.blobs import get_all_borders
face_img = cv2.imread("docs/img_samples/face.png", flags=cv2.IMREAD_GRAYSCALE)
face_img = face_img.any(axis=0)
assert tuple(get_all_borders(face_img)) == ((3, 6), (7, 10))
import cv2
from pycvutils.brightness import crop_bright_area_and_pad
face_img = cv2.imread("docs/img_samples/face.png")
# useful for colored images
assert crop_bright_area_and_pad(face_img, pad_size=5).shape == (15, 19, 3)
import cv2
from pycvutils.brightness import has_any_bright_border, has_any_bright_corner
face_img = cv2.imread("docs/img_samples/face.png")
# returns True if any border has non-zero pixel
assert not has_any_bright_border(face_img)
# returns True if any corner pixel is non-zero
assert not has_any_bright_corner(face_img)
import cv2
from pycvutils.channels import split_view
face_img = cv2.imread("docs/img_samples/face.png")
# works like cv2.split, but returns views instead of copies
views = split_view(face_img)
assert isinstance(views, tuple)
assert len(views) == 3
assert (views[0].base == face_img).all() # 'is' doesn't work for some reason
import cv2
from pycvutils.filling import brighten_areas_near_borders, flood_fill_binary
face_img = cv2.imread("docs/img_samples/face.png", flags=cv2.IMREAD_GRAYSCALE)
# wrapper around cv2.floodFill
assert (flood_fill_binary(face_img, x_y=(1, 1)) == 255).all()
# fills with white any black area touching borders of image
assert (brighten_areas_near_borders(face_img) == 255).all()
import cv2
from pycvutils.matching import compare_one_to_one, compare_with_crop
face_img = cv2.imread("docs/img_samples/face.png")
template = face_img[5:-2, 6:-2]
# makes small crop before making comparison
assert compare_with_crop(face_img, template, crop_ratio=0.1) == 1.0
# resize template to size of original img before making comparison
assert compare_one_to_one(face_img, template) != 1.0
import cv2
from pycvutils import padding
face_img = cv2.imread("docs/img_samples/face.png", flags=cv2.IMREAD_GRAYSCALE)
padded = padding.unequal(face_img, value=125, top=2, left=2, right=1)
assert padded.shape[0] == face_img.shape[0] + 2
assert padded.shape[1] == face_img.shape[1] + 3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pycvutils-0.1.6.tar.gz.
File metadata
- Download URL: pycvutils-0.1.6.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86fd2d85391e91c349d3c8beddf1532627e182c3a2996a4963e1a0a30f674c80
|
|
| MD5 |
f471274a017165894d3de904af00ceb8
|
|
| BLAKE2b-256 |
18c05407f97ad706249c67fba283751dd431d567a06b3556422d9bb5ebb463f0
|
File details
Details for the file pycvutils-0.1.6-py3-none-any.whl.
File metadata
- Download URL: pycvutils-0.1.6-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed93698c237961a577a0777d1a91cd22e5851d7aadc11c96aa07135f9c26710f
|
|
| MD5 |
78faf59751e1cf1ff3582603f2d579f1
|
|
| BLAKE2b-256 |
5b6a96fd8ad1dfbfac018394b7a9138bda181584e38a93cfa11962257a9cbb4a
|