Image¶
This module provides some image processing methods.
Read/Write/Show¶
To read or write images files, use read_img
or write_img
.
import cvbase as cvb
img = cvb.read_img('test.jpg')
img_ = cvb.read_img(img) # nothing will happen, img_ = img
cvb.write_img(img, 'out.jpg')
To read images from bytes
import cvbase as cvb
with open('test.jpg', 'rb') as f:
data = f.read()
img = cvb.img_from_bytes(data)
To show an image file or a loaded image
cvb.show_img('tests/data/color.jpg')
for i in range(10):
img = np.random.randint(256, size=(100, 100, 3), dtype=np.uint8)
cvb.show_img(img, win_name='test image', wait_time=200)
Resize¶
There are lots of resize methods. All resize_* methods have a parameter return_scale
,
if this param is False
, then the return value is merely the resized image, otherwise
is a tuple (resized_img, scale).
import cvbase as cvb
# resize to a given size
cvb.resize(img, (1000, 600), return_scale=True)
# resize to the same size of another image
cvb.resize_like(img, dst_img, return_scale=False)
# resize by a ratio
cvb.resize_by_ratio(img, 0.5)
# resize so that the max edge no longer than 1000, short edge no longer than 800
# without changing the aspect ratio
cvb.resize_keep_ar(img, 1000, 800)
# resize to the maximum size
cvb.limit_size(img, 400)
Color space conversion¶
Supported conversion methods:
- bgr2gray
- gray2bgr
- bgr2rgb
- rgb2bgr
- bgr2hsv
- hsv2bgr
import cvbase as cvb
img = cvb.read_img('tests/data/color.jpg')
img1 = cvb.bgr2rgb(img)
img2 = cvb.rgb2gray(img1)
img3 = cvb.bgr2hsv(img)
Crop¶
Support single/multiple crop.
import cvbase as cvb
import numpy as np
img = cvb.read_img('tests/data/color.jpg')
bboxes = np.array([10, 10, 100, 120]) # x1, y1, x2, y2
patch = cvb.crop_img(img, bboxes)
bboxes = np.array([[10, 10, 100, 120], [0, 0, 50, 50]])
patches = cvb.crop_img(img, bboxes)
Resizing cropped patches.
# upsample patches by 1.2x
patches = cvb.crop_img(img, bboxes, scale_ratio=1.2)
Padding¶
Pad an image to specific size with given values.
import cvbase as cvb
img = cvb.read_img('tests/data/color.jpg')
img = cvb.pad_img(img, (1000, 1200), pad_val=0)
img = cvb.pad_img(img, (1000, 1200), pad_val=[100, 50, 200])