vc++ 调用tensorflow 2.0 的.pb模型进行神经网络预测

vc++(vs2017版本)下调用python生成的tensorflow2.0 xx.pb模型进行神经网络图片预测。

代码:

#pragma once

class CMyAiMode
{
public:
    CMyAiMode();
    ~CMyAiMode();
public:
    void Test();
};

#include "pch.h"
#include "MyAiMode.h"
#include
#include
#include
#include
using namespace cv;
using namespace std;
using namespace cv::dnn;

CMyAiMode::CMyAiMode()
{
}


CMyAiMode::~CMyAiMode()
{
}

void CMyAiMode::Test()
{
    std::string strPath;
    strPath = "D:\\5.jpg";
    Mat src_image = imread(strPath);
    if (src_image.empty())
    {
        return;
    }
    size_t num_c = src_image.channels();
    cv::Size sz = src_image.size();
    string path = "D:\\weld.pb";
    Net net = readNetFromTensorflow(path);
    double d = 1.0 / 255;
    cv::Scalar mean{ 0, 0, 0 };
    bool swapRB{ true };//关键
    int inputW = 100;//模型图片宽高
    int inputH = 100;
    Mat blob = blobFromImage(src_image, d, cv::Size(inputW, inputH), mean, swapRB, false);
    net.setInput(blob);
    Mat out = net.forward();
    TRACE(_T("cols:%d %d elemsize:%d channels:%d, total:%d result:%.6f %.8f\n"), out.cols, out.rows, out.elemSize(), out.channels(), out.total(), out.at(0,0), out.at((0,1)));
    float f, f2;//预测结果为两个标签, 各自概率
    memcpy(&f, out.data, sizeof(float));
    memcpy(&f2, out.data+4, sizeof(float));
    TRACE(_T("%.6f %.6f"), f, f2);
}

opencv库下载地址:https://download.csdn.net/download/wcqq12345/87249348

你可能感兴趣的:(tensorflow,神经网络,深度学习)