c++调python踩坑日志

news2024/11/25 14:49:30

目录

import_array();报错
矩阵互相转换
#include numpy相关vs2019配置

import_array();报错

参考:https://blog.csdn.net/weixin_40232401/article/details/106944336#:~:text=%E5%9C%A8,import_array%20%28%29%E5%87%BA%E7%8E%B0%E6%8A%A5%E9%94%99%EF%BC%8C%E6%9C%89%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%8C%E8%BF%94%E5%9B%9E%E5%80%BC%E7%B1%BB%E5%9E%8B%E4%B8%8E%E5%87%BD%E6%95%B0%E7%B1%BB%E5%9E%8B%E4%B8%8D%E5%8C%B9%E9%85%8D%EF%BC%88%E8%BF%99%E6%AE%B5%E4%BB%A3%E7%A0%81%E5%9C%A8%E7%9A%84%E5%87%BD%E6%95%B0%E6%97%A0%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%89%E3%80%82
这里简单实现了一下QImage格式的图片转opencv mat再转,后传入python的功能。
在 import_array()出现报错,有返回值,返回值类型与函数类型不匹配(这段代码在的函数无返回值)。

解决办法:
找到\Path\to\Pythonfile\Python36\Lib\site-packages\numpy\core\include\numpy__multiarray_api.h,1548行左右,删去return NUMPY_IMPORT_ARRAY_RETVAL
https://blog.csdn.net/ganwenbo2011/article/details/89790762

编译,再出错

无法解析的外部符号 __imp___Py_RefTotal
无法解析的外部符号 __imp___Py_NegativeRefcount,该符号在函数 __import_array 中被引用
1
2
解决方法
修改两个头文件
1 注释掉object.h第56行
//#define Py_TRACE_REFS
2 pyconfig.h 337行
//# define Py_DEBUG

矩阵互相转换

// Build the 2D array
PyObject  *pReturn, *pFunc;
PyArrayObject *np_ret, *np_arg;
const int SIZE{ 10 };
npy_intp dims[2]{SIZE, SIZE};
const int ND{ 2 };
long double(*c_arr)[SIZE]{ new long double[SIZE][SIZE] };
long double* c_out;
for (int i{}; i < SIZE; i++)
    for (int j{}; j < SIZE; j++)
        c_arr[i][j] = i * SIZE + j;

PyObject* pReturn1 = PyArray_SimpleNewFromData(ND, dims, NPY_LONGDOUBLE,
    reinterpret_cast<void*>(c_arr));

np_arg = reinterpret_cast<PyArrayObject*>(pReturn1);

// Calling array_tutorial from mymodule
PyObject *pName = PyUnicode_FromString("mymodule");

PyObject* pArgs = PyTuple_New(1);
PyTuple_SetItem(pArgs, 0, reinterpret_cast<PyObject*>(np_arg));
PyObject* pReturn2 = PyEval_CallObject(pFunc1, pArgs);

#include numpy相关vs2019配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

renix如何查看时延和抖动和丢包——网络测试仪实操

目录 查看时延和抖动​ 一、预约测试资源 ​ 二、新建流​ 三、查看时延和抖动​ 查看丢包​ 一、预约端口​ 二、创建Raw流​ 三、如何查看流量的实时丢包个数和丢包比例​ 查看时延和抖动​ 一、预约测试资源 ​ 打开Renix软件&#xff0c;连接机箱, 预约端口​ 二…

课题-基于安卓androidstudio的团购app

一、课题介绍 客户端&#xff1a; 1&#xff1a;注册登录&#xff1a;用户使用注册的账号密码进行登录&#xff1b; 2&#xff1a;查看商品&#xff1a;用户可以查看发布的商品信息&#xff1b; 3&#xff1a;分类查看&#xff1a;用户可以通过分类的查看商品信息&#xff1b;…

MySQL索引的数据结构

索引的数据结构 本专栏学习内容来自尚硅谷宋红康老师的视频 有兴趣的小伙伴可以点击视频地址观看 1. 为什么要使用索引&#xff1f; 索引是存储引擎用于快速找到数据记录的一种数据结构&#xff0c;就好比去图书馆找书&#xff0c;或者新华字典里找字&#xff0c;相当于一个目…

SQL用法详解

1.SQL语言是什么?有什么作用?SQL:结构化查询语言&#xff0c;用于操作数据库&#xff0c;通用于绝大多数的数据库软件2.SQL的特征大小写不敏感需以;号结尾支持单行、多行注释3操作数据库的SQL语言基于功能可以划分为4类:数据定义:DDL ( Data Definition Language)&#xff1a…

校验、异常处理

前端校验完后&#xff0c;后端需要再做一次校验 JSR303 定义了数据校验的标准 使用步骤 为Bean标识注解&#xff0c;并自定义错误提示 import javax.validation.constraints自定义规则&#xff1a;一个小写或大写字母 Email、Future、NotBlank、Size 等 不推荐使用NotEmp…

Linux下命令(2)

Linux下命令(2) 1. 解压缩命令 Linux 下最常用的打包程序是 tar 命令&#xff0c; 使用 tar 打出来的包我们常称为 tar 包&#xff0c; tar包文件的命令通常都是以.tar 结尾的&#xff0c;生成 tar 包后&#xff0c;就可以用其它的程序来进行压缩了。   功能&#xff1a; ta…

Python程序的构成

1.开始学习图形化程序设计 >>> import turtle #导入turtle模块 >>> turtle.showturtle() #显示箭头 >>> turtle.write("文字") #写字符串 >>> turtle.forward(300) #前进300像素 >>> turtle.c…

基于C++的AGV机器人无线控制实现

AGV系统概述 AGV原理 AGV行走控制系统由控制面板、导向传感器、方向电位器、状态指示灯、避障传感器、光电控制信号传感器、驱动单元、导引磁条、电源组成。 AGV的导引&#xff08;Guidance&#xff09;是指根据AGV导向传感器&#xff08;Navigation&#xff09;所得到的位置…

Blender如何打开IFC数据?

Blender如何打开IFC数据安装blenderbimIFC介绍下载和安装BlenderBIM插件Blender打开IFC数据对于一个外行人&#xff0c;当我想查看IFC数据的呈现形式时&#xff0c;但是我又没有Revit软件&#xff0c;那么我想到了Blender&#xff0c;网上查了只需要安装BlenderBIM插件&#xf…

表单验证[用户名、邮箱、密码、重复密码]

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>表单验证</title> <link rel"stylesheet" href"form.css"> <!-- 引入样式 --> &l…

C++语法3——if switch break continue的定义及用法

接上节 循环语句 这一节写的是判断语句 if else语句 基本语法&#xff1a; 第一种&#xff1a; if(bool(布尔变量)) {如果bool值为真执行的语句; } else {如果bool值为假执行的语句; }如果布尔表达式为 true&#xff0c;则执行 if 块内的代码。如果布尔表达式为 false&#x…

2023北京/上海/广州/深圳物联网产品经理班招生简章

NPDP产品经理国际资格认证是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 我们针对互联网时代的个人、互联网企业、与传统企业推出一系列学习。 课程从…

第四十五讲:神州防火墙P2P流量控制配置

实验拓扑图如下所示 配置要求&#xff1a;出口带宽 100Mbps&#xff0c;外网为 eth0/1 接口&#xff0c; 内网连接两个网段172.16.1.0/24 和 192.168.1.0/24&#xff0c;需限制 P2P 应用其下行带宽为 10M&#xff0c;上传最大 5M。 配置步骤&#xff1a; 一、指定接口带宽 …

Struts2框架之result配置

Struts2框架之result配置result配置1、常用的结果类型1.1、dispather类型1.2、redirect类型1.3、redirectAction类型2、全局结果配置result配置 result配置一般与页面相关&#xff0c;请求经由对应Action处理后&#xff0c;返回一个字符串&#xff0c;根据返回的字符串找到对应…

为了让5G更省电,这家设备商秀出黑科技

近日&#xff0c;工信部发布了我国最新的《通信业经济运行情况》数据。根据数据显示&#xff0c;截止到11月末&#xff0c;我国5G基站总数已经达到228.7万个&#xff0c;比2021年底增加了86.2万个。这些数量庞大的基站&#xff0c;共同构建了一张规模庞大的5G网络。而这张网络&…

YOLOv5 CPU实时的实例分割教程-它来了!

一个不知名大学生&#xff0c;江湖人称菜狗original author: jacky LiEmail : 3435673055qq.comTime of completion&#xff1a;2023.1.6Last edited: 2023.1.6YOLOv5 CPU实时的实例分割教程-它来了&#xff01;简介前不久&#xff0c;ultralytics发布了一个yolov5 7.0版本&…

yolov8s网络模型结构图

yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8真的来了&#xff01;&#…

2023,本命年向阳而生

2023&#xff0c;本命年向阳而生 ——Maynor的2022复盘及2023目标 幸运且努力 先说结论&#xff1a;2022年是极不平凡的一年。 有很多重大事件发生&#xff0c;且与我们的生活息息相关。最令人高兴的是疫情的缓解&#xff0c;2023年也将有更多的机会。 我在这一年经历的事…

FFMPEG入门资料---001---介绍和参数说明

文档介绍 1.1 文档目的 整理出开源代码 ffmpeg 的资料&#xff0c; 方便公司同事后续使用。 1.2 文档范围 较为详细的介绍 ffmpeg 的功能、使用以及二次开发。 1.3 读者对象 希望了解 ffmpeg 知识&#xff0c; 从事 USM 及 IPTV 的同事。 1.4 参考文献 无 1.5 术语与缩…

AcWing 4655. 重新排序(差分+前缀和+贪心)

一、题目信息 二、思路分析 这道题的话&#xff0c;其实只看前一句话&#xff0c;我们应该用的是前缀和算法。但是这道题在此基础上做了改变&#xff0c;我们根据前缀和可以算出排序之前各个区间和的和。 根据题意&#xff0c;我们需要对数组重新排序&#xff0c;使得排序之后…