更新时间:2023-11-15 20:41:46
cvSetData(imageFrame,Buffer,Width * 3);
缓冲区字节数组
宽度* 3是IplImage每行中的字节数(我的情况宽度= 640)
imageFrame是一个IplImage *
cvSetData(imageFrame,Buffer, Width*3);
Buffer-Byte array
Width*3 is the number of bytes in each row of IplImage (my case Width=640)
imageFrame is an IplImage*
如果你然后使用以下函数在C#下有用#$ $
//字节到图像
public static Image< bgr,> ConvertByteToImage(byte [] bytes)
{
返回新的图像< bgr,>(新的Bitmap(Image.FromStream(new MemoryStream(bytes))));
}
//图像到字节
public static byte [] ConvertImageToByte(Image< bgr,> My_Image)
{
MemoryStream m1 = new MemoryStream();
新位图(My_Image.ToBitmap())。保存(m1,系统.Drawing.Imaging.ImageFormat.Jpeg);
byte [] header = new byte [] {255,216};
header = m1.ToArray();
返回(标题);
}
以上逻辑可能会使用完整。
if you are use then following function useful under C#
//bytes to image
public static Image<bgr,> ConvertByteToImage(byte[] bytes)
{
return new Image<bgr,>(new Bitmap(Image.FromStream(new MemoryStream(bytes))));
}
//image to byte
public static byte[] ConvertImageToByte(Image<bgr,> My_Image)
{
MemoryStream m1 = new MemoryStream();
new Bitmap(My_Image.ToBitmap()).Save(m1, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] header = new byte[] { 255, 216 };
header = m1.ToArray();
return (header);
}
above logic may use full.