我无法使用结构化森林培训的原始 BSDS模型(https://github.com/pdollar/edges/blob/master/models/forest/modelBsds.mat)来检测边缘。要从.mat
转换为.yml
,我将此脚本https://github.com/opencv/opencv_contrib/blob/master/modules/ximgproc/tutorials/scripts/modelConvert.m与命令modelConvert(model, "model.yml")
一起使用,建议here。但是,当我使用转换后的模型运行边缘检测时,我得到了这个:
输入图像为:
尽管如此,this model仍有效。任何人都知道为什么原始.mat
模型不起作用?这是我的代码:
img = cv2.imread('./kermit.jpg')
edgedetector = cv2.ximgproc.createStructuredEdgeDetection('./model.yml')
src = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
edges = edgedetector.detectEdges(np.float32(src) / 255.0)
cv2.imshow("edges", edges)
任何想法都赞赏。