多语言展示
当前在线:1860今日阅读:55今日分享:34

opencv DNN 进行深度学习,Importer类无法导入

我们知道,opencv 是一种非常流行的视觉图像处理库。通常被用作处理图像,但是3.3.0及以上版本在其库中加入了DNN库这个库,可以构成深度学习框架。然而,用opencv 进行深度学习,未形成官方的教程。由于版本问题,可能需要,自己处理很多bug.当初erro:'Importer' is not a number of 'cv::dnn',我们应该怎么样处理呢?
工具/原料
1

vs2015 opencv 3.4.3

2

或者CLion opencv 3.30

方法/步骤
1

当我们在用SSD模型进行对象检测,不可避免要引用DNN中的importer这个类:如下图所示:

2

然而现在opencv 官网只提供最新版本的 opencv 版本(都是大于3.3.0)

3

当我们用了最近的opencv 版本(>3.3.0),之后我们再用其Dnn 进行深度学习操作,(编代码)我们就会发现,无论我们怎么调试,其中importer这个关键字,都会标红,而且报错。保存内容为:erro:'Importer' is not a number of 'cv::dnn'

4

小编为此费了九牛二虎之力,才找到原因:opencv3.3.0以上的版本中DNN库无importer这个类,只有poencv 3.3.0版本才有这个类。如下图所示。

5

所以我们尝试的解决办法有:1.卸载当前的opencv版本,重装openCv3.3.0版本,2.在现在当前版本中找到,impoter类所在的库,把Ptr importer;改为Ptr<对应的库::Importer> importer;但是我们发现,高版本中importer类已经消失,我们只能降低版本,(也即选择第一种方法)

6

重新安装opencv3.3.0版本之后我们run 一下我们的新程序,就可以跑了。下图就是图像检测的,展示:

注意事项
1

openCv 安装教程网上比较多,此处就不予介绍

2

openCv的代码,要求比较高,需要有一定的编程基础

3

如果要进行openCv Dnn库学习,最好用3.3.0版本的,稳定!

推荐信息