将OpenCV 2中的ANN_MLP代码转换为OpenCV 3代码

时间:2018-10-09 09:34:49

标签: c++ opencv

我在OpenCV 2中的代码是:

android {
    ...
    libraryVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "${variant.name}-${defaultConfig.versionName}.aar"
        }
    }
}

如何将其转换为OpenCV 3?当我将ann.create(layers, CvANN_MLP::SIGMOID_SYM, 1, 1); 转换为CvANN_MLP时。出现错误:

  

字段类型'cv :: ml :: ANN_MLP'是一个抽象类

有什么主意吗?谢谢。

2 个答案:

答案 0 :(得分:0)

仅作为示例,如果您要导入提到的常规导入:

    events: {
        load: function() {
            this.zone = this.renderer.path(['M', 100, 100, 'L', 150, 150, 'L', 450, 200, 'L', 450, 100, 'z'])
                .attr({
                    stroke: 'red',
                    fill: '#666666',
                    'stroke-width': 2
                })
                .add();

            this.zone.toFront()
        }
    }

您可能希望查看official docs以获得更多详细信息。

答案 1 :(得分:-1)

在转换一些opencv2代码时遇到了这个问题,这可能会有帮助

#include<opencv2/ml.hpp>

Ptr<ml::ANN_MLP> ann = ml::ANN_MLP::create();
Mat layers(1,3,CV_32SC1);
layers.at<int>(0)= TrainData.cols;
layers.at<int>(1)= nlayers;
layers.at<int>(2)= numCharacters;
ann->setActivationFunction(ml::ANN_MLP::SIGMOID_SYM, 1,1);
ann->setLayerSizes(layers);

opencv 2代码为:

#include<ml.h>

CvANN_MLP  ann;
Mat layers(1,3,CV_32SC1);
layers.at<int>(0)= TrainData.cols;
layers.at<int>(1)= nlayers;
layers.at<int>(2)= numCharacters;
ann.create(layers, CvANN_MLP::SIGMOID_SYM, 1, 1);