морфологическая реконструкция путем дилатации снимка работает странно - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь использовать реконструкцию расширением из skimage, но когда я рисую входное изображение (img_rescaled в коде) и результат (пики в коде), они выглядят по-разному, но фактически имеют одинаковые ценности, почему это ?????

Может ли это быть связано с типом, потому что мой результат находится в float64 (на графике результат выглядит хорошо), и когда я делаю его копию ("высокий" в коде) и превращаю ее в int8 он показывает то же, что и входное изображение

Вот мой код:

intensityrange = (70, 90)   # intensity range to be used in the rescaling of the image
img_rescaled = exposure.rescale_intensity(img, in_range=(
    intensityrange)) # Stretching or shrinking of intensity lvls according to the range
dilation_seed = np.copy(img_rescaled)   # Seed created based on the rescaled image
dilation_seed[1:-1, 1:-1] = img_rescaled.min()  # The seed is turned black except the borders (like in skimage example) 

mask = img_rescaled #Mask created using the rescaled image
peaks = reconstruction(dilation_seed, mask, method='dilation')  # recosntruction using dilation

high = peaks.astype(uint8)  # copy the peaks image (the result) but turned into int8enter code here
plt.figure()
plt.subplot(2,2,1)
plt.imshow(img_rescaled)
plt.title('img_rescaled')
plt.subplot(2,2,2)
plt.imshow(peaks)
plt.title('peaks')
plt.subplot(2,2,3)
plt.imshow(high)
plt.title('high')
plt.show(block=False)

изображения

если я увеличиваю пиксель в позиции 1,1 масштабированный синий цвет, а в результате белый, но посмотрите на RGB для пикселя:

img rescaled[1,1]: [191 255 255] peaks[1,1]: [191. 255. 255.] high[1,1]: [191 255 255]
...