|
|
|
|
|
|
|
|
|
|
|
import cv2 |
|
|
import numpy as np |
|
|
|
|
|
from utils.ops import minmax |
|
|
|
|
|
|
|
|
def read_gray_array(path, div_255=False, to_normalize=False, thr=-1, dtype=np.float32) -> np.ndarray: |
|
|
""" |
|
|
1. read the binary image with the suffix `.jpg` or `.png` |
|
|
into a grayscale ndarray |
|
|
2. (to_normalize=True) rescale the ndarray to [0, 1] |
|
|
3. (thr >= 0) binarize the ndarray with `thr` |
|
|
4. return a gray ndarray (np.float32) |
|
|
""" |
|
|
assert path.endswith(".jpg") or path.endswith(".png"), path |
|
|
assert not div_255 or not to_normalize, path |
|
|
gray_array = cv2.imread(path, cv2.IMREAD_GRAYSCALE) |
|
|
assert gray_array is not None, f"Image Not Found: {path}" |
|
|
|
|
|
if div_255: |
|
|
gray_array = gray_array / 255 |
|
|
|
|
|
if to_normalize: |
|
|
gray_array = minmax(gray_array, up_bound=255) |
|
|
|
|
|
if thr >= 0: |
|
|
gray_array = gray_array > thr |
|
|
|
|
|
return gray_array.astype(dtype) |
|
|
|
|
|
|
|
|
def read_color_array(path: str): |
|
|
assert path.endswith(".jpg") or path.endswith(".png") |
|
|
bgr_array = cv2.imread(path, cv2.IMREAD_COLOR) |
|
|
assert bgr_array is not None, f"Image Not Found: {path}" |
|
|
rgb_array = cv2.cvtColor(bgr_array, cv2.COLOR_BGR2RGB) |
|
|
return rgb_array |
|
|
|