Ошибка "Файл модели уже открыт" в обнаружении края python -opencv file - PullRequest
0 голосов
/ 28 мая 2020

Я написал программу для обнаружения edgebox с использованием OpenCV в Python. Код показан ниже:

import cv2 as cv
import numpy as np
import time

if __name__ == '__main__':

    start = time.time()

    model = 'model.yml'
    img = cv.imread('./TrainingData/F067.jpg')

    edge_detection = cv.ximgproc.createStructuredEdgeDetection(model)
    rgb_img = cv.cvtColor(img, cv.COLOR_BGR2RGB)
    edges = edge_detection.detectEdges(np.float32(rgb_img) / 255.0)

    orimap = edge_detection.computeOrientation(edges)
    edges = edge_detection.edgesNms(edges, orimap)

    edge_boxes = cv.ximgproc.createEdgeBoxes()
    edge_boxes.setMaxBoxes(15)
    boxes = edge_boxes.getBoundingBoxes(edges, orimap)

    for box in boxes:
        for b in box:
            try:
                x, y, w, h = b
                cv.rectangle(img, (x, y), (x+w, y+h), (148,0,211), 3, cv.LINE_AA)
            except:
                pass

    cv.imshow("edges", edges)
    cv.imshow("edgeboxes", img)

    end = time.time()
    print(f'That took about {round((end - start) * 1000)}ms to finish')

    if cv.waitKey(0) == 27:
        cv.destroyAllWindows()

Сначала все работало нормально, но теперь в окне cmd появляется следующая ошибка:

File ".\Face detection\edgebox.py", line 12, in <module>
edge_detection = cv.ximgproc.createStructuredEdgeDetection(model)
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv_contrib\modules\ximgproc\src\structured_edge_detection.cpp:440: error: (-215:Assertion failed) modelFile.isOpened() in function 'cv::ximgproc::StructuredEdgeDetectionImpl::StructuredEdgeDetectionImpl'

Может кто-нибудь сказать мне, что происходит здесь? Также я только что использовал файл модели котла, который я нашел на inte rnet. Можно ли создавать собственные файлы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...