失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > QT + 百度智能云之人脸对比

QT + 百度智能云之人脸对比

时间:2021-11-11 01:03:10

相关推荐

QT + 百度智能云之人脸对比

前言

看此文之前,建议先看一下另一篇文章:基于 qt c++和百度智能云API的人脸图像识别应用实例

本文仅对人脸对比部分做描述。

人脸对比概述

上传两张图像数据,计算人脸的相似度。

效果图

接口代码

1、Qimage转base64编码,构造json数据,发起post请求。

void BaiduFaceOnline::FaceMatch(const QImage& image1, const QImage& image2){QString img1_base64 = image2base64_str(image1);QString img2_base64 = image2base64_str(image2);QJsonObject post_data1;post_data1.insert("image", img1_base64);post_data1.insert("image_type", "BASE64");QJsonObject post_data2;post_data2.insert("image", img2_base64);post_data2.insert("image_type", "BASE64");QJsonArray img_array;img_array.append(post_data1);img_array.append(post_data2);QJsonDocument document;document.setArray(img_array);QByteArray post_param = document.toJson(QJsonDocument::Indented);QUrl url(FaceMatchUrl + "?access_token=" + AccToken);NetRequest.setUrl(url);NetRequest.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json")); //接口固定connect(NetAccManager,&QNetworkAccessManager::finished,this,&BaiduFaceOnline::FaceMatchReply);NetAccManager->post(NetRequest,post_param);}

2、接收反馈,解析json数据,使用信号发送至UI。

void BaiduFaceOnline::FaceMatchReply(QNetworkReply* reply){if (reply->error() != QNetworkReply::NoError){QMessageBox::warning(0,"","请求错误!");return;}else{QByteArray content = reply->readAll();QJsonParseError jsonError;QJsonDocument doucment = QJsonDocument::fromJson(content, &jsonError); // 转化为 JSON 文档if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)){if (doucment.isObject()){QJsonObject root_object = doucment.object();if (root_object.take("error_code").toInt() == 0 && root_object.take("error_msg").toString() == "SUCCESS"){QJsonObject result_object = root_object.take("result").toObject();emit MatchReply("相似度:" + QString::number(result_object.take("score").toDouble()));}}}reply->deleteLater();}disconnect(NetAccManager,&QNetworkAccessManager::finished,this,&BaiduFaceOnline::FaceMatchReply);}

源码地址

人脸检测、对比、识别示例源码

无需积分,关注我即可下载。欢迎在评论区提出您的意见和建议,一起探讨。

软件版本

qt 5.12.10

如果觉得《QT + 百度智能云之人脸对比》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。