2

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

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

我正在考虑让 opencv 直接将图像数据绘制到窗口上。我可以轻松地获得窗口句柄,那么是否可以让 openCV 将他们的数据“绘制”在另一个窗口上 - 或者更好地绘制到另一个窗口中?任何库(FFMPEG 或其他)都可以做到这一点吗?

4

1 回答 1

3

的,这是可能的,但远非理想。您可以使用 GDI 在另一个窗口顶部绘制只需将 IplImage 转换为 HBITMAP)。另一种技术是在无边界 分层窗口中进行此类绘制。

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

以下是您将如何分解IplImage为 5 个标准参数:

  • 图像的大小(int, int)(宽/高);
  • 图像的 ( int ) 位深度;
  • 通道数(int);
  • 以及图像的(unsigned char*)像素;

对方接收到这些参数后,你可能会想:如何IplImage从头组装一个?呼叫cvCreateImageHeader()后跟cvSetData()

于 2013-02-01T18:05:45.353 回答