Python Opencv Обнаружение краев структурированных лесов TypeError - PullRequest
0 голосов
/ 28 февраля 2019

Когда я вызываю OpenCV Структурное определение лесов в Python, как показано ниже, я получаю сообщение об ошибке:

import numpy as np
import cv2

img = cv2.imread('2009_005193.jpg')
gray_img = np.asarray(img.mean(axis=2) / 255, np.float32)
out = cv2.ximgproc_StructuredEdgeDetection.detectEdges(gray_img)

Получаемая ошибка:

Traceback (most recent call last):
  File "gop1.py", line 19, in <module>
    out = cv2.ximgproc_StructuredEdgeDetection.detectEdges(gray_img)
TypeError: descriptor 'detectEdges' requires a 'cv2.ximgproc_StructuredEdgeDetection' object but received a 'numpy.ndarray'

В документации( ссылка на документацию ), она присутствует в ximgproc_StructuredEdgeDetection, как функция detectEdges ().

1 Ответ

0 голосов
/ 21 апреля 2019

Как и в документации, для этого потребуется 3-канальное изображение с плавающей точкой 32.Возможно, вам нужно сначала создать объект StructuredEdgeDetection.Однако, это сработало для меня:

imgrgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)/255
imgrgb=imgrgb.astype(np.float32)
model='structured edge/model.yml'
retval=cv2.ximgproc.createStructuredEdgeDetection(model)
out=retval.detectEdges(imgrgb)
...