PyQt/PySide:如何将QImage转换为OpenCV的MAT形式

2024-09-30 12:24:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望在PyQt中创建一个函数,用于将QImage转换成OpenCV(CV2)Mat格式。在

我该怎么做?到目前为止,我使用的输入图像是作为QImage加载的png(RGB或RGBA)。在

最后,我希望使用两个qimage并使用matchTemplate函数在另一个图像中查找一个图像,因此如果有比我现在找到的更好的方法,我也愿意这样做。但能够在两者之间轻松地来回转换将是理想的。在

谢谢你的帮助


Tags: 方法函数图像png格式rgbcv2opencv
2条回答

在这里搜索了很多之后,我找到了一个有效的解决方案。我从另一个问题的答案得到了我的大部分代码:https://stackoverflow.com/a/11399959/1988561

我面临的关键挑战是如何正确使用指针。我想我缺少的是setsize函数。在

以下是我的进口:

import cv2
import numpy as np

我的职能是:

^{pr2}$

我试过上面给出的答案,但没有得到预期的结果。我尝试了这个粗糙的方法,使用QImage类的save()方法保存图像,然后使用图像文件在cv2中读取它

下面是一个示例代码

def qimg2cv(q_img):
    q_img.save('temp.png', 'png')
    mat = cv2.imread('temp.png')
    return mat

完成文件后,可以删除生成的临时图像文件。 这可能不是正确的方法来做这项工作,但仍然可以完成所需的工作。在

相关问题 更多 >

    热门问题