我正在编写一个程序来在 GPU 上进行一些图像处理。为此,我使用的是 CUDA.Net,但不幸的是,CUDA 无法识别类型byte,我可以使用以下代码在其中存储像素信息:
BitmapData bData = bmp.LockBits(new Rectangle(new Point(), bmp.Size),
ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb);
// number of bytes in the bitmap
byteCount = bData.Stride * (bmp.Height);
byte[] bmpBytes = new byte[byteCount];
Marshal.Copy(bData.Scan0, bmpBytes, 0, byteCount);
bmp.UnlockBits(bData);
return bmpBytes;
我的问题在于 CUDA 不采用此字节数组,如果将其更改为int[]类型,程序将检索 AccessViolationException。
有人有解决这个问题的想法吗?
提前致谢。