Я пытаюсь запустить код сегментации строк, который я нашел на GitHub.Когда программа достигает этой строки кода:
def invert(im):
im = abs(255 - im)
im = im / 255
return im
def enhance(im):
kernel = np.ones((5, 5), np.uint8)
im = cv2.erode(im, kernel, iterations=1)
kernel = np.ones((15, 15), np.uint8)
im = cv2.dilate(im, kernel, iterations=1)
return im
im = cv2.imread(filename, 0)
imbw = sauvola.binarize(im, [20, 20], 128, 0.3)
im = invert(im)
im = enhance(im)
hist = cv2.reduce(im, 1, cv2.REDUCE_SUM, dtype=cv2.CV_32F)
Я получаю эту ошибку:
Ошибка: OpenCV (3.4.1) C: \ projects \ opencv-python \ opencv\ modules \ core \ src \ matrix_operations.cpp: 1111: ошибка: (-210) Неподдерживаемая комбинация форматов входных и выходных массивов в функции cv :: lower
Я перепробовал все значения dtype
доступно для функции cv2.reduce ().Я также попытался изменить тип данных изображения, используя NumPy.Но все равно я получаю ту же ошибку.
Полный код: https://github.com/smeucci/LineSegm/blob/master/python/linesegm/lib/linelocalization.py#L41