调用百度API实现人像动漫化(C++)

简介: 调用百度API实现人像动漫化(C++)

准备工作

      1)登录网站:人像动漫化-百度AI开放平台 。登录百度AI平台。

图1 登录百度AI平台

  2)创建应用,领取免费次数。

图2 创建应用

图3 领取免费次数

     3)复制AppID、API Key、Secret Key,调用接口的密钥。

图4 获取密钥

   4)下载SDK,我用的C++,所以我只介绍C++的相关使用。

图5 SDK下载

图6 选择C++SDK

图6 选择C++SDK

      5)VS创建项目,包含SDK路径。

图7 包含SDK路径

      6)项目配置OpenSSL库,详情见:


Windows下配置OpenSSL(傻瓜式教程,一看就会)_翟天保的博客-CSDN博客


      7)项目配置libcurl库,详情见:


Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)_翟天保的博客-CSDN博客


      8)项目配置JsonCpp库,详情见:


Windows下用CMake编译JsonCpp及配置(适合新手)_翟天保的博客-CSDN博客


      9)配置好环境,开始测试,见下方代码。C++比其其他语言确实是麻烦的多。。。


C++测试代码

#include <iostream>
#include <curl/curl.h>
#include <image_process.h>
#include <opencv2/opencv.hpp>
#include <json/json.h>
using namespace std;
using namespace cv;
int main()
{
  std::string app_id = "XXXXX";//id
  std::string api_key = "XXXXXXX";//api_key
  std::string secret_key = "XXXXXXXXX";//secret_key
  // 图像处理接口
  aip::Imageprocess client(app_id, api_key, secret_key);
  // 选择图片
  Json::Value result;;
  std::string image;
  aip::get_file_content("test2.jpg", &image);
  // 参数设置
  std::map<std::string, std::string> options;
  options["type"] = "anime_mask";
  options["mask_id"] = "3";
  // 人像动漫化函数
  result = client.selfieanime(image, options);
  // 获取结果
  std::string res = result["image"].asString();
  std::string result_dec;
  result_dec = aip::base64_decode(res);
  std::vector<char> base64_img(result_dec.begin(), result_dec.end());
  cv::Mat img_decode = cv::imdecode(base64_img, IMREAD_COLOR);
  cv::Mat mask = img_decode * 255;
  // 保存图像
  cv::imwrite("nresult.jpg", img_decode);
  cv::imwrite("nresultm.jpg", mask);
  return 0;
}


测试效果

      人像动漫化的API文档:


https://cloud.baidu.com/doc/IMAGEPROCESS/s/Mk4i6olx5


      如果函数有什么可以改进完善的地方,非常欢迎大家指出,一同进步何乐而不为呢~


      如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

相关文章
|
8月前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
312 0
|
8月前
|
Linux C++
百度搜索:蓝易云【Linux下C++ STL获取Mac地址教程】
请注意,获取MAC地址需要root权限,因此在运行代码时可能需要使用sudo权限。另外,不同的Linux发行版和内核版本可能会稍有差异,您可能需要根据您的具体环境进行适当的调整。
109 0
|
5月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之海外是否可以访问人物动漫化的api版本
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
57 0
|
5月前
|
Dart API 开发工具
Dart ffi 使用问题之Dart API要在C++中使用,该如何初始化
Dart ffi 使用问题之Dart API要在C++中使用,该如何初始化
|
8月前
|
Linux API C++
【Linux C/C++ 线程同步 】Linux API 读写锁的编程使用
【Linux C/C++ 线程同步 】Linux API 读写锁的编程使用
70 1
|
8月前
|
编译器 API C++
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
349 0
|
8月前
|
SQL API 开发工具
【C/C++ API设计】C/C++ API与动态库设计:从入门到精通
【C/C++ API设计】C/C++ API与动态库设计:从入门到精通
918 0
|
8月前
|
存储 JavaScript API
C++ 正则表达式库 std::basic_regex 中文手册(API说明来自cppreference.com)
C++ 正则表达式库 std::basic_regex 中文手册(API说明来自cppreference.com)
178 0
|
8月前
|
Ubuntu 数据库 C++
百度搜索:蓝易云【【嵌入式Qt开发入门】在Ubuntu下编写C++教程。】
请注意,这只是一个入门教程,Qt开发涉及到更广泛的主题和概念,例如信号与槽机制、界面设计、数据库操作等。建议参考Qt官方文档和教程,以深入了解和掌握嵌入式Qt开发。
177 0
|
Ubuntu NoSQL C++
百度搜索:蓝易云【搭建ubuntu容器内C/C++开发调试环境】
以上是搭建 Ubuntu 容器内 C/C++ 开发调试环境的一般教程。你可以根据实际需求进行进一步的定制和配置。请注意,使用容器进行开发调试可以提供一种隔离的环境,但也需要注意容器的资源限制和安全性。建议参考 Docker 官方文档和其他可靠资源,以获取更详细和特定于你的需求的指导。
61 1