使用原始BSDS模型无法检测边缘

时间:2018-02-14 15:10:55

标签: opencv

我无法使用结构化森林培训的原始 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。但是,当我使用转换后的模型运行边缘检测时,我得到了这个:

enter image description here

输入图像为:

enter image description 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)

任何想法都赞赏。