gpt4 book ai didi

c++ - 是否可以在另一个窗口中绘制(使用 Opencv/ffmpeg

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:46 26 4
gpt4 key购买 nike

我意识到这个问题可能会因“研究不足”而结束。然而,我确实花了大约 2 天时间在谷歌上搜索它,但没有找到决定性的答案。

嗯,我有一个生成窗口的应用程序,不是用 C++ 编写的。这个应用程序可以有一个带有 dll 的 c 接口(interface)。现在我想利用 OpenCV 的强大功能,所以我开始在一个 dll 上进行扩展。从/向应用程序传递图像数据几乎是不可能的(只能直接传递 c 字符串和 double 值 - 使用硬盘驱动器进行绘图对于实时图像处理来说速度太慢了)。

我正在考虑让 opencv 直接将图像数据绘制到窗口上。我可以很容易地获得窗口句柄,那么是否可以让 openCV 将它们的数据“覆盖”在另一个窗口上——或者更好地绘制到另一个窗口中?对于任何库(FFMPEG 或其他),这甚至可能吗?

最佳答案

Yes ,这是可能的,但远非理想。你可以use GDI to draw on top of the other window ( just convert IplImage to HBITMAP )。 Another technique就是在无边界中做这样的绘图layered window .

更简单的方法是,因为您拥有这两个应用程序,所以编写一个函数,使用标准 C 数据类型在它们之间传递 IplImage,毕竟, IplImage 只不过是从这些标准类型构建的数据类型。

下面是将 IplImage 分解为 5 个标准参数的方法:

  • 图片的尺寸(int, int)(宽/高);
  • 图像的(int)位深度;
  • channel 数(int);
  • 以及图像的 (unsigned char*) 像素;

对方收到这些参数后,你可能会想: how do I assemble a IplImage from scratch ? 调用 cvCreateImageHeader()其次是 cvSetData() .

关于c++ - 是否可以在另一个窗口中绘制(使用 Opencv/ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14646961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com