0

我正在使用 EmguCV,我有一个大小为 640x480 的字节类型灰度矩阵,矩阵的每个元素都是 255 或 0。现在我需要从中制作一个图像。我找到的最好的构造函数如下所示:

Image<Gray,byte>(int width, int height, int stride, IntPtr scan0)

我从矩阵中得到了第一个、第二个和第四个参数,我发送了 640 的步幅。但它给了我一个

Access violation exception: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

我会很感激任何帮助。

4

1 回答 1

1

您很可能传递了错误的指针。错误的步幅只会导致图像内容出现失真。在您的情况下,640 将是正确的值(只需再次使用宽度),因为步幅始终表示内存中一个图像行的长度(在您的情况下为 640 字节)。我只能猜测,但不要尝试使用矩阵的_ptr指针。这听起来可能合乎逻辑,但它会指向整个矩阵对象,而不仅仅是数据(你想要的)。现在不检查,我很确定您可以使用矩阵copyTo()将内容复制到图像(如果这对您的用例来说足够的话)。

于 2011-05-09T23:44:56.510 回答