当前位置: 首页 > news >正文

北京网站优化wyhseo惠州市seo广告优化营销工具

北京网站优化wyhseo,惠州市seo广告优化营销工具,怎么宣传自己新开的店铺,深圳app网站建设陈俊兵1、目的 将c/c编译成动态链接库#xff0c;通过python调用#xff0c;实现常见变量比如int#xff0c;字符串之间的交互#xff0c;以及np.ndarray和cv::Mat间的交互. 更简单的方式参考#xff1a;pybind11实现numpy和OpenCV Mat的数据交互-CSDN博客 2 步骤 新建CMakeL…1、目的 将c/c编译成动态链接库通过python调用实现常见变量比如int字符串之间的交互以及np.ndarray和cv::Mat间的交互. 更简单的方式参考pybind11实现numpy和OpenCV Mat的数据交互-CSDN博客 2 步骤 新建CMakeLists.txt如下需要安装opencv安装教程参考Ubuntu 18.04 安装opencv4.2.0如果遇到IPPICV问题参考解决编译opencv时卡在IPPICV cmake_minimum_required(VERSION 3.10) project(test) add_definitions(-stdc11) add_definitions(-DAPI_EXPORTS) set(CMAKE_CXX_STANDARD 11) set(CMAKE_BUILD_TYPE Debug) find_package(OpenCV) include_directories(${OpenCV_INCLUDE_DIRS}) add_library(myplugins SHARED ${PROJECT_SOURCE_DIR}/test.cpp) target_link_libraries(myplugins ${OpenCV_LIBS}) 新建test.cpp #include opencv2/opencv.hpp #include string using namespace std;#if defined(_MSC_VER) #define API __declspec(dllimport) #else #define API #endif // API_EXPORTStypedef struct test {/* data */int ages;std::string name;cv::Mat pic; } Person;extern C API void * init(int age_, char * name_ptr, unsigned char *src_data, int rows, int cols) {Person *handle new Person();std::string name_ name_ptr;handle-ages age_;handle-name name_;handle-pic cv::Mat(rows, cols, CV_8UC3, src_data);return (void*) handle; }extern C API int get_ages(void* handle_) {Person * handle (Person*)handle_;return handle-ages; }extern C API char* get_name(void* handle_) {Person * handle (Person*)handle_;return (char*)handle-name.c_str(); }extern C API void get_pic(void* handle_, int rows, int cols, unsigned char* out_data) {Person * handle (Person*)handle_;cv::imshow(raw, handle-pic);cv::waitKey();//数据处理//....//返回结果memcpy(out_data, handle-pic.data, rows*cols*3); } 新建test.py具体转换见代码注释 from ctypes import * import cv2 import numpy as np import numpy.ctypeslib as npct#加载链接库 lib CDLL(./build/libmyplugins.so)#定义函数的输入类型和输出类型 lib.get_ages.restype c_int lib.get_ages.argtypes [c_void_p] #输入句柄(指针) lib.get_name.restype c_void_p #返回char* lib.get_name.argtypes [c_void_p] #输入句柄(指针)img cv2.imread(oil-bin-1.png) #修改成自己的图片 ages 23 name bytes(kitty, utf-8) #要对应c函数中的char*需要转为二进制(rows, cols) (img.shape[0], img.shape[1]) image_type npct.ndpointer(dtype np.uint8, ndim 3, shape img.shape, flagsC_CONTIGUOUS) #指定numpy图片的格式lib.init.restype c_void_p #返回句柄(指针) lib.init.argtypes [c_int, c_void_p, image_type, c_int, c_int]#将np格式的图片传递到c hd lib.init(c_int(ages), c_char_p(name), img, c_int(rows), c_int(cols))print(lib.get_ages(hd)) #返回整数直接打印 name c_char_p(lib.get_name(hd)).value #返回char*, 需要转换 print(name.decode(utf-8)) #解码成字符串##第一种读取图片的方式使用ndpointer指定图片类型 out_image np.zeros_like(img).astype(np.uint8) #需要先开辟内存 lib.get_pic.argtypes [c_void_p, c_int, c_int, image_type] lib.get_pic(hd, c_int(rows), c_int(cols), out_image) cv2.imshow(out1, out_image)##第二种读取图片的方式不使用ndpointer指定图片类型 out_image np.zeros_like(img).astype(np.uint8) #需要先开辟内存 lib.get_pic.argtypes [c_void_p, c_int, c_int, c_void_p] #句柄(指针)rowscols, 图片指针 lib.get_pic(hd, c_int(rows), c_int(cols), out_image.ctypes.data_as(POINTER(c_ubyte)))cv2.imshow(out2, out_image) cv2.waitKey() 3、测试 将上述3个文件放到同一个目录然后在命令行中进入到该目录依次运行会弹出图片单击图片按任意键即可 mkdir build cd build cmake .. make cd .. python test.py
http://www.zqtcl.cn/news/680944/

相关文章:

  • 手机商城网站方案如何自己搭建微信小程序
  • 做影视免费网站违法吗青岛快速排名优化
  • 网站建设在电子商务中的作用的看法360地图怎么添加商户
  • 网站域名备案与不备案的区别wordpress 注册审核
  • 大学生做企业网站网页设计免费模板情侣
  • 商城网站建设教程网站开发支付宝
  • 广安网站设计快递加盟代理
  • 建设网站的建筑公司宿迁华夏建设集团网站
  • 百度推广网站建设费利用阿里云虚拟主机做网站
  • 吐槽做网站论坛模板
  • 广水住房和城乡建设部网站简单网页制作代码html
  • 建设网站找什么仿门户网站
  • 贵阳手机网站建设公司沈阳图书设计公司
  • 哪里做网站比较好在哪里注册域名
  • 做搜狗pc网站软件下载广告设计与制作学什么
  • 软件工程 旅游网站开发er图昆山网站建设网站建设
  • 网站下载的网页修改下面版权所有企业建设营销型网站的目的有
  • 官方重大项目建设库网站手机ps软件如何做ppt下载网站
  • 全国加盟网站大全海尔网站建设目标
  • wordpress 企业站模版自己做视频网站可以吗
  • 建设电子商务网站的方法有广东网站开发收费
  • php网站页面转wordpress网站广告代码
  • 在线网站建设教程网站版面布局结构
  • 网站建设提议网站建设怎么在图片上加字
  • 网站模板但没有后台如何做网站家政网站开发
  • 自己办网站审批流程网页设计师的发展路径
  • 什么叫网站地图百度竞价排名费用
  • 企业网站建设顾问wordpress如何用API采集
  • win7网站后台无法编辑vr网站建设
  • 做头发个人网站制作素材dw中做网站的步骤