Я использую skimage для обработки водоразделов, так как это дает лучшие результаты. Но как только контуры найдены, свойства контуров гораздо проще найти с помощью opencv.
Я использую это, чтобы найти контуры водораздела Skimage:
contours = measure.find_contours(watershed(-distance, markers, mask=th4), 0.8)
для рисования контуров я использую это:
cv2.drawContours(rimg6, [A.astype(np.int32)], -1, (0,255,0), 4)
Поскольку skimage дает реальные числа, а opencv работает только с целыми числами, я использую это, чтобы преобразовать контуры в целые числа:
A = np.floor(contours[0])
A = A.astype(int)
рисование контура ничего не делает с [A.astype(np.int32)], и когда я использую A.astype(np.int32) (я имею в виду без скобок), я получаю эту ошибку:
OpenCV(4.1.2) /io/opencv/modules/imgproc/src/drawing.cpp:2509: error: (-215:Assertion failed) npoints > 0 in function 'drawContours'
Что я должен делать?