Я пытаюсь применить алгоритм WaterShed к изображению согласно учебнику: OpenCv WaterShed Docs. Я ранее применен пороговая Оца после гауссовской фильтрации и Morpholigical преобразований на исходное изображение, чтобы улучшить качество изображения в соответствии с кодом:Дистанционное преобразование в OpenCV Python автоматически преобразует CV_8UC3 в CV_32SC1, создавая ошибку утверждения
img = cv2.imread('Results\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)
Применив расстояние преобразования в качестве первого этапа алгоритма водораздела в соответствии с кодом:
# sure background area
sure_bg = cv2.dilate(opening,kernel,iterations=1)
# Finding sure foreground area
dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,3)
создает ошибку:
error: (-215) src.type() == CV_8UC3 && dst.type() == CV_32SC1 in function cv::watershed
в котором канал изображения 8bit 3 предпринята, чтобы быть преобразованы в 32b это одноканальное изображение. Как я могу предотвратить это и все же работать с Трансформацией расстояния?
Вы смогли это обработать? –
К сожалению, я не смог это обработать –
Кажется, я вообще не получаю эту ошибку. Можете ли вы загрузить изображение, которое используете? –