You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV水果检测项目中SimpleBlobDetector构造函数调用错误求助

解决OpenCV4.x中SimpleBlobDetector构造报错问题

问题原因

OpenCV 4.x版本对SimpleBlobDetector的实现做了调整:它的构造函数被设为protected,不再允许直接通过SimpleBlobDetector detector(params);这种方式实例化对象,必须通过类的静态create()方法生成智能指针实例。而你参考的代码是基于OpenCV2的写法,这就是版本不兼容导致报错的核心原因。

修复方案

把直接构造对象的代码替换为create()方法创建智能指针:

原错误代码

cv::SimpleBlobDetector::Params params;
// 此处省略params参数配置
SimpleBlobDetector detector(params); // 报错行

修改后代码

cv::SimpleBlobDetector::Params params;
// 此处保留params参数配置
cv::Ptr<cv::SimpleBlobDetector> detector = cv::SimpleBlobDetector::create(params);

后续注意事项

因为你的项目代码是基于OpenCV2编写的,后续使用检测器时,调用方法也要适配智能指针的用法,比如原本调用detector.detect(...)要改成detector->detect(...)。

内容的提问来源于stack exchange,提问作者RioKJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:55:35