将类作为 Intptr 传递

本文关键字:Intptr 传递 | 更新日期: 2023-09-27 17:56:33

当我遇到这段代码时,我正在使用Emgu CV:

Image<Bgr, byte> image = new Image<Bgr, byte>("test.jpg");
Image<Bgr, byte> image2 = new Image<Bgr, byte>("test2.jpg");
CvInvoke.cvSmooth(image, image2, SMOOTH_TYPE.CV_GAUSSIAN, 5, 5, 9, 9);

根据cvSmooth()的定义,前2个参数是IntPtr

我的问题是,为什么将一种Image<Bgr, byte>传递到这个是有效的?

将类作为 Intptr 传递

看起来Image<TColor,TDepth>有一个Ptr属性

PTR

图像

我会更改您的代码以读取

Image<Bgr, byte> image = new Image<Bgr, byte>("test.jpg");
Image<Bgr, byte> image2 = new Image<Bgr, byte>("test2.jpg");
CvInvoke.cvSmooth(image.Ptr, image2.Ptr, SMOOTH_TYPE.CV_GAUSSIAN, 5, 5, 9, 9);

您使用的是什么版本?我只是使用"稳定"版本来查找文档