当前位置:   article > 正文

调用百度API实现人像动漫化(C++)_opencv c++ 如何调用百度api

opencv c++ 如何调用百度api

作者:Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

准备工作

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

图1 登录百度AI平台

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

图2 创建应用
图3 领取免费次数

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

图4 获取密钥

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

图5 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++测试代码

  1. #include <iostream>
  2. #include <curl/curl.h>
  3. #include <image_process.h>
  4. #include <opencv2/opencv.hpp>
  5. #include <json/json.h>
  6. using namespace std;
  7. using namespace cv;
  8. int main()
  9. {
  10. std::string app_id = "XXXXX";//id
  11. std::string api_key = "XXXXXXX";//api_key
  12. std::string secret_key = "XXXXXXXXX";//secret_key
  13. // 图像处理接口
  14. aip::Imageprocess client(app_id, api_key, secret_key);
  15. // 选择图片
  16. Json::Value result;;
  17. std::string image;
  18. aip::get_file_content("test2.jpg", &image);
  19. // 参数设置
  20. std::map<std::string, std::string> options;
  21. options["type"] = "anime_mask";
  22. options["mask_id"] = "3";
  23. // 人像动漫化函数
  24. result = client.selfieanime(image, options);
  25. // 获取结果
  26. std::string res = result["image"].asString();
  27. std::string result_dec;
  28. result_dec = aip::base64_decode(res);
  29. std::vector<char> base64_img(result_dec.begin(), result_dec.end());
  30. cv::Mat img_decode = cv::imdecode(base64_img, IMREAD_COLOR);
  31. cv::Mat mask = img_decode * 255;
  32. // 保存图像
  33. cv::imwrite("nresult.jpg", img_decode);
  34. cv::imwrite("nresultm.jpg", mask);
  35. return 0;
  36. }

测试效果

图1 原图
图2 戴口罩的动漫图
图3 不带口罩的动漫图

       人像动漫化的API文档:

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/441714
推荐阅读
相关标签
  

闽ICP备14008679号