vc++ 调用tensorflow 2.0 的.pb模型进行神经网络预测
vc++(vs2017版本)下调用python生成的tensorflow2.0 xx.pb模型进行神经网络图片预测。代码:#pragma onceclass CMyAiMode{public:CMyAiMode();~CMyAiMode();public:void Test();};#include "pch.h"#include "MyAiMode.h"#include#include
vc++(vs2017版本)下调用python生成的tensorflow2.0 xx.pb模型进行神经网络图片预测。
代码:
#pragma once
class CMyAiMode
{
public:
CMyAiMode();
~CMyAiMode();
public:
void Test();
};
#include "pch.h"
#include "MyAiMode.h"
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <iostream>
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<float>(0,0), out.at<float>((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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)