【问题标题】:IntPtr in cv::Mat constructorcv::Mat 构造函数中的 IntPtr
【发布时间】:2016-08-23 16:41:54
【问题描述】:

如何在构造函数cv::Mat 中使用IntPtr

IntPtr ptr = bmp_Data->Scan0;
cv::Mat (640, 480, CV_8UC3, ptr);

但它不起作用。

【问题讨论】:

  • 请问bmp_Data是什么类型的?您正在使用 c++,但它看起来像来自 .Net 的位图类。你在用 c++/cli 吗?
  • 是的。它是 c++/cli。

标签: opencv computer-vision c++-cli opencv3.0 mat


【解决方案1】:
  1. 检查ptr 不为零
  2. 位图行通常从下到上排序(Windows 位图中的默认选项,BMPHEADER 中的正高度)。在这种情况下,没有 640x480x3 大小的连续数据块,从 bmp_Data->Scan0 开始,可能会发生访问冲突。

【讨论】:

    【解决方案2】:

    您可能应该使用构造函数,而不是赋值运算符:

    IntPtr ptr(bmp_Data->Scan0);
    

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      相关资源
      最近更新 更多