Я написал программу для обнаружения 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. Можно ли создавать собственные файлы?