Python调用C++编写的OpenCV函数

Python调用C++编写的函数,利用OpenCV的方法


有时常常遇到两种语言切换的问题,比如在C++中实现了一个图像处理算法,将其封装为一个函数,该函数的输入输出类型为OpenCV中常用的类型如cv::Mat等,需要在Python中调用,这时可以愉快地利用OpenCV生成Python包的方法。

原理

利用OpenCV生成Python包的原理,将我们写的C++程序编译成Python包(本文介绍的是在Windows环境下,使用VS,Python 64位,其他环境按需修改即可,主要是几个文件)
原理参考 How OpenCV-Python Bindings Works?

参考learnopencv,本文介绍了cv2.cpp的修改方法,与参考有些区别,改动少一些

配置方法

环境注意事项

  1. Python位数,和使用的VS编译器位数要相同,本文测试的都是64位
  2. 本文介绍的OpenCV版本是4.0.1,其他版本按需修改(主要是几个文件,支持生成Python包的OpenCV版本应该都是可以的)

配置步骤

  • cv2.cpp,pycompat.hpp,gen2.py,hdr_parser.py这几个文件从OpenCV源码中拷贝出来,大致路径在moudules/python/src

  • 目录结构(要新建的后文介绍)

--cv2.cpp
--pycompat.hpp
--gen2.py
--hdr_parser.py
--headers.txt
--src
----pycvtest.h
----pycvtest.cpp
--pycvtest
  • pycvtest.h中写这些,注意命名空间必须使用cv,减少后续工作量,注意不要直接导入opencv.hpp,因为它导入了大量的库,如果不需要不用导入,按需修改,本例中只是用了core.hpp用来展示
#pragma once
//#include <opencv.hpp>
#include <opencv2/core.hpp>

namespace cv {
   
  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值