У меня это входное изображение. Я пытаюсь сгенерировать все эти 8 последующих выходных данных ( РИСУНОК 9.44 из цифровой обработки изображений Гонсалеса 3-го издания ), используя это изображение:
8 выходов (первое изображение в верхнем левом углу - это input image)
Мой код:
import numpy as np
import cv2
a = cv2.imread('input.tif', 0)
marker = cv2.erode(a, np.ones(71), iterations=1)
for i in range(2):
tmp = cv2.dilate(marker, np.ones(71), iterations=1)
marker = np.maximum(a, tmp)
b = marker
c = cv2.morphologyEx(a, cv2.MORPH_OPEN, np.ones(71))
d = cv2.morphologyEx(a, cv2.MORPH_TOPHAT, np.ones(71))
marker = cv2.erode(d, np.ones(11), iterations=1)
for i in range(1):
tmp = cv2.dilate(marker, np.ones(11), iterations=1)
marker = np.maximum(d, tmp)
f = marker
g = cv2.dilate(f, np.ones(21), iterations=1)
h = np.minimum(d, g)
SE = np.ones(21)
mask = g
marker = h
for i in range(10):
tmp = cv2.dilate(marker, SE, iterations=1)
marker = np.maximum(tmp, mask)
i = marker
Для генерации последнего вывода ( i ) книга говорит:
Используя изображение h в качестве маркера и расширенное изображение (g) в качестве маски и выполняя реконструкцию в оттенках серого путем расширения, мы получаем окончательный результат
Однако мои результаты неверны. Я не могу понять, где проблема. (Подпись под изображением может помочь вам создать 8 выходов)