Я хочу скелетировать изображение, используя модуль scikit-image для скелетирования. Это изображение предварительно обработано библиотекой OpenCV. Получив изображение «Feb_16-0.jpg», я конвертирую его в оттенки серого, выполняю морфологическое преобразование при открытии изображения, затем применяю размытие по Гауссу и адаптивное пороговое значение с помощью OpenCV и Python:
import cv2
import numpy as np
from matplotlib import pyplot as plt
from skimage.morphology import skeletonize
from skimage.viewer import ImageViewer
img = cv2.imread('Feb_16-0.jpg',0)
kernel = np.ones((1,1),np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
blur = cv2.GaussianBlur(opening,(1,1),0)
ret3,th4 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
Теперь я хочу скелетонизировать изображение, используя scikit-image skimage.morphology.skeletonize. Я попытался написать код для выполнения эрозии и расширения, чтобы вручную скелетировать изображение с помощью OpenCV и Python. Но это оказалось очень неэффективной обработкой, поэтому я решил переключиться на библиотеку scikit-image. Однако, когда я передаю массив numpy, предварительно обработанный OpenCV, в модуль scikit-image, используя код:
skel = skeletonize(th4)
и попробуйте просмотреть результаты того же, я получаю ошибку:
Image contains values other than 0 and 1
Я не могу интерпретировать причину того же самого. Может ли кто-нибудь помочь мне в устранении этой ошибки типа данных?