问题标签 [opencv-mat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Qt - 在工作线程崩溃中将 cv::Mat 转换为 QImage
介绍
我想要的非常简单:我想通过主 ui 线程中的按钮开始读取二进制文件的过程,让单独的线程处理包括转换在内的处理QImage
并将该图像返回到主 ui 线程它应该显示在标签中。
因此我使用 Qt 的信号/槽机制及其线程功能。
我已经有了一个单线程工作解决方案,但是当使用线程尝试时,它会在我不理解的完全任意步骤上崩溃,因为整个过程是完全封装的,而不是时间关键......
工作单线程解决方案:
TragVisMain
是一个QMainWindow
:
按下按钮readBinSingle
开始该过程:
这就像一个魅力,但当然 ui 被阻止了。
不工作的多线程解决方案
正如您将看到的代码与上面的代码基本相同,只是移动到另一个类DoCameraStuff
。TragVisMain
因此,这是头文件中用于此目的的主要组件:
DoCameraStuff
只是一个QObject
:
移动dcs
到workerThread
and connect
ing 信号和槽发生在 的构造函数中TragVisMain
:
通过按下readBinSingle
按钮开始图像处理:
该过程发生在DoCameraStuff::readBinaryAndShowBinPic
:
显示图像TragVisMain::setImage
:
问题
好吧,多线程尝试只是在不同步骤中使整个应用程序崩溃而没有任何消息。但老实说,我没有任何想法。对我来说,这个DoCameraStuff
类是一个标准的工人类,在成员函数中做与时间无关的东西,没有任何关键关系。
我还检查了内部使用的某些函数是否不是线程安全的,但我在,和等效条件下DoCameraStuff::readBinaryAndShowBinPic
找不到任何问题。<cstdio>
cv::Mat
QImage
所以:
- 为什么多线程尝试会崩溃?
- 需要应用哪些更改,才能使线程中的进程不崩溃?
我总是感谢你的帮助。
python - 在 C++ 中将图像数据从 python 传递到 cv::mat
我正在cv2.imread("abc.tiff",1)
从我的 python 接口读取图像,我想将它传递给由 pybind11 绑定的 c++ 函数。C++ 函数需要 acv::Mat
作为输入。
现在我了解到 python 将其转换为 NumPY ,一个 NxM 3D 数组
我发现数据高度、宽度、通道分别为 5504 8256 3。
任何帮助我如何找到解决方案。
同样,我需要将一个传递cv::Mat
给 Python 接口
opencv - 如何创建具有单独 rgb 通道数据的 opencv 矩阵
假设我有三个 char 数组r[1024], g[1024], b[1024]
,其中包含一个图像的 rgb 数据。我怎么能用cv::Mat
这些通道数据创建一个?
opencv - 使用 PyArray_SimpleNewFromData 将 mat 转换为 numpyarray 时出现分段错误
PyArray_SimpleNewFromData 中的奇怪分段错误
PyArray_SimpleNewFromData 中的分段错误
在尝试了上述两篇文章中的所有可能解决方案后,我发布了这个问题,但我仍然面临着细分。我的代码非常简单直接,但我不知道如何摆脱它。对此的任何解决方案都会有很大帮助。
我的代码是:
如果我尝试添加 import_array() 我会收到另一个错误,说明如下:
我的 Cmake 文件是:
c++ - 如何制作 cv::Mat_ 对象
我需要使用 OpenCV 库中的 cv::Mat_ 类来执行一些数据处理。
我有一个这样的结构类型
如果我尝试像这样创建一个 cv::Mat_ 对象,
我在 Visual Studio 中遇到错误,
'channel_type': 不是 'cv::DataType<_Tp>' 的成员
我已经尝试阅读文档并阅读有关相同错误的其他帖子,但它并没有解决我的问题。我是 C++ 新手。
有人可以帮助我吗?
c++ - cv::Max 中的错误?
要么我做错了什么,要么 cv::max 有问题。我以最明显的方式称呼它:
并得到:
目前在 OSX Mojave,AppleClang 10. OpenCV4.1.0。我很快就会尝试另一个设置。
image-processing - 从 python 调用 c++ 函数时出错
我是 Python 新手,我想在 Python 模块中调用 C++ 函数。在阅读了关于 ctype、cython、swig 等的信息后,我决定使用 boost: python 来调用两个简单的 c++ 函数。
我写了这个 c++ 函数:
这是我的python代码:
第一个函数 (hi) 可以正常工作,但是对于想要对图像进行一些预处理的第二个函数,它不起作用并显示此错误:
new_image = hello.read_image() TypeError: No to_python (by-value) converter found for C++ type: cv::Mat
谁能帮我解决这个问题?
c++ - 访问在 python 中使用 suprocess.check_output 调用的 c++ 代码的输出
我有一个适用于图像的 python 代码。出于一些性能原因,我决定使用一个 C++ 程序,它的函数没有任何输入参数,但它的输出是 cv::mat 格式的图像数据。
我想从我的 python 代码中访问这个输出数据。
我使用 subprocess.check_output 调用这个 c++ 代码。
如何从我的 python 代码访问图像数据?
这是我的python代码的一部分:
这是我的 C++ 代码:
我想在 main 函数中访问 new_image 数据。
当我运行我的 python 代码时,它完全运行,我看到这条消息:“这是一个简单的水印!”
但我不知道如何访问图像数据以在我的 python 代码中使用它来显示它。
有人有什么想法可以帮助我吗?
python - 我需要 zeroMQ c++11 <> Python multipart messages cvmat + string 的清晰示例
我可以使用 Python 发送和接收多部分消息,如下所示。可能是我的温柔触摸或注意力不集中,我无法以同样的方式进行工作 c++11 < > Python 消息传递。
也没有找到明确的例子。
我需要的:
我有 cv::Mat 和字符串信息。我想通过 zeromq 将它发送到 Python(或 c++11 没问题)。
我认为这对所有 ZeroMQ 用户都非常有用。
在 python 中,我可以发送和接收消息,如下所示:
server.py(部分):
client.py(部分):