imblackhat
-
說明:黑帽運算:閉運算的結果減去原圖像。對於多通道圖像,每個通道都將獨立處理。意義是可以用來提取比原圖像暗的區域,例如暗點或細小結構,同時去除或減弱大面積的暗區域。
-
參數
- img (
np.ndarray):輸入圖像。 - ksize (
Union[int, Tuple[int, int]]):結構元素的大小。預設為 (3, 3)。 - kstruct (
str | int | MORPH):元素形狀。可用MORPH.CROSS/RECT/ELLIPSE、字串"CROSS"/"RECT"/"ELLIPSE"或 OpenCV 的整數值。預設為MORPH.RECT。
- img (
-
範例
import numpy as np
from capybara.vision.morphology import imblackhat
img = np.array([[1, 1, 1, 0, 0],
[1, 1, 1, 0, 0],
[1, 1, 1, 0, 0],
[0, 0, 0, 0, 0], # <- Look at this row
[0, 0, 0, 1, 1],
[0, 0, 0, 1, 1]], dtype=np.uint8)
blackhat_img = imblackhat(img, ksize=3, kstruct='CROSS')
# Kernel will be like this:
# >>> np.array([[0, 1, 0],
# [1, 1, 1],
# [0, 1, 0]], dtype=np.uint8)
# After blackhat, the image will be like this:
# >>> np.array([[0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0],
# [0, 0, 1, 1, 0], # <- 1's are extracted
# [0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0]], dtype=np.uint8)