我继承了一个带有opencv、shiboken和pyside的应用程序,我的第一个任务是更新到qt6、pyside6和opencv 4.5.5.到目前为止进展顺利,我可以导入模块并生成类实例等.但是,在传递numpy数组时,我遇到了崩溃:

我通过python将numpy数组形式的图像传递给opencv,并使用pyopencv_to将数组转换为cv::Mat.这在opencv的早期版本(4.5.3)中起到了作用,但在4.5.5中,它似乎被 destruct 了.

当我试图通过pyopencv_to传递数组时,我得到了异常opencv_ARRAY_API was nullptr.我的前任通过直接拨打PyInit_cv2()解决了这个问题,这显然是之前通过报头包含的.但是我在git中的标签4.5.3下找不到定义这个函数的任何头.这是生成的文件吗?我可以看到有一个pycompat.hpp,但也不包括功能.

是否有一种规范的方法来初始化所有内容,以便可以正确地传递numpy数组?或者任何人都能给我指点的教程?到目前为止,我的搜索还没有产生任何有用的提示.

非常感谢!:)

推荐答案

我终于找到了解决办法.我不知道这是不是正确的方法,但它是有效的.

我制作了一个包含

PyMODINIT_FUNC PyInit_cv2();

作为转发声明,然后复制modules/python/src2目录中的所有内容.我以为这已经发生在cv2上了.cpp文件,因为已经有了那一行(在cv2.cpp中).

但显然,仅仅加上include就可以了.现在,当我自己的模块初始化时,我可以调用init函数,它似乎正确地设置了所有需要的状态.

Python相关问答推荐

想要使用Polars groupby_Dynamic来缩减时间序列收件箱(包括空垃圾箱)

Pandas 群内滚动总和

具有2D功能的Python十六进制图

从webhook中的短代码(而不是电话号码)接收Twilio消息

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

使可滚动框架在tkinter环境中看起来自然

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

如何在Django基于类的视图中有效地使用UTE和RST HTIP方法?

给定高度约束的旋转角解析求解

将JSON对象转换为Dataframe

如何保持服务器发送的事件连接活动?

在两极中过滤

如何使用Numpy. stracards重新编写滚动和?

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

幂集,其中每个元素可以是正或负""""

使用Openpyxl从Excel中的折线图更改图表样式

比Pandas 更好的 Select

以异步方式填充Pandas 数据帧

Beautifulsoup:遍历一个列表,从a到z,并解析数据,以便将其存储在pdf中.

使用Python TCP套接字发送整数并使用C#接收—接收正确数据时出错