C# 无法将类型转换为';系统.绘图.图像';存在显式转换

C# 无法将类型转换为';系统.绘图.图像';存在显式转换,c#,windows,forms,image,spinnaker-cam,C#,Windows,Forms,Image,Spinnaker Cam,对于这一点,我使用Spinnaker SDK作为FLIR(PointGrey)相机的示例。我试图转换“convertedImage”以在Windows窗体的PictureBox中使用,但出现错误“无法将类型隐式转换为“System.Drawing.Image”。存在显式转换(是否缺少转换?)。你能告诉我需要做什么吗?谢谢 尝试了一切,包括基本的显式强制转换 //Part of Spinnaker SDK example: using (IManagedImage convertedIma

对于这一点,我使用Spinnaker SDK作为FLIR(PointGrey)相机的示例。我试图转换“convertedImage”以在Windows窗体的PictureBox中使用,但出现错误“无法将类型隐式转换为“System.Drawing.Image”。存在显式转换(是否缺少转换?)。你能告诉我需要做什么吗?谢谢

尝试了一切,包括基本的显式强制转换

//Part of Spinnaker SDK example:    
using (IManagedImage convertedImage = 
rawImage.Convert(PixelFormatEnums.Mono8))
{
    String filename = "TriggerQS-CSharp-";
    if (deviceSerialNumber != "")
    {
        filename = filename + deviceSerialNumber + "-";
    }
    Image testImage = convertedImage; 
}

我也有同样的问题。Spinnaker类型
IManagedImage
有一个名为
ManagedData
的属性,该属性是一个1d向量,包含图像的所有字节。如果你有我下面例子中的颜色,它们是交错的

//cv.ManagedData is a one D array of all pixels in all colors

        int nx = 2592;
        int ny = 1944; //7776/3 = 2592  stride, i.e. rgb are interleaved
        byte[,,] data = new byte[ny, nx, 3];

        for (int j = 0; j < ny; j++)
        {
            for (int i = 0; i < nx; i++)
            {
                for (int k = 0; k < 3; k++)
                {
                    data[j,i, k] = cv.ManagedData[j * 3 * nx + 3 * i + k];
                }

            }
        }

        //emgu cv accepts the [,,] byte array
        Image<Bgr, Byte> im0 = new Image<Bgr, Byte>(data); 
//cv.ManagedData是所有颜色的所有像素的一维数组
int nx=2592;
int ny=1944//7776/3=2592步幅,即rgb交错
字节[,]数据=新字节[ny,nx,3];
对于(int j=0;j
我也有同样的问题。Spinnaker类型
IManagedImage
有一个名为
ManagedData
的属性,该属性是一个1d向量,包含图像的所有字节。如果你有我下面例子中的颜色,它们是交错的

//cv.ManagedData is a one D array of all pixels in all colors

        int nx = 2592;
        int ny = 1944; //7776/3 = 2592  stride, i.e. rgb are interleaved
        byte[,,] data = new byte[ny, nx, 3];

        for (int j = 0; j < ny; j++)
        {
            for (int i = 0; i < nx; i++)
            {
                for (int k = 0; k < 3; k++)
                {
                    data[j,i, k] = cv.ManagedData[j * 3 * nx + 3 * i + k];
                }

            }
        }

        //emgu cv accepts the [,,] byte array
        Image<Bgr, Byte> im0 = new Image<Bgr, Byte>(data); 
//cv.ManagedData是所有颜色的所有像素的一维数组
int nx=2592;
int ny=1944//7776/3=2592步幅,即rgb交错
字节[,]数据=新字节[ny,nx,3];
对于(int j=0;j
它可能意味着
图像测试图像=(图像)转换图像。请注意,
testImage
是在
中使用
块声明的。我认为这越来越近了。现在我得到:无法将类型为“SpinnakerNET.ManagedImage”的对象强制转换为类型为“System.Drawing.Image”。将记住using块。它可能意味着
Image testImage=(Image)convertedImage。请注意,
testImage
是在
中使用
块声明的。我认为这越来越近了。现在我得到:无法将类型为“SpinnakerNET.ManagedImage”的对象强制转换为类型为“System.Drawing.Image”。将记住使用块。