前言
不同相机取完图像后的图像数据包里包含的数据并不一定是相同的,而且相机取图后的图像数据第三方的视觉库(Halcon,visionpro等)也并不能直接使用(除非使用视觉库自带的采图工具而非相机自己的SDK)。所以一般的在相机取图后需要向目标视觉库支持的图像类型进行转换。下面的内容将陆续更新(用到了就会更新在这里)。
提要
一般的2D相机中关键的数据在于:数据集(byte[])或(Intptr) , 图像的宽width ,图像的高height
一、大华相机
首先大华的SDK中通过回调的图像数据如下;
public interface IGrabbedRawData
{
byte[] Image { get; } //关键数据
IntPtr Raw { get; }
int ImageSize { get; }
int Width { get; } //关键数据
int Height { get; } //关键数据
long BlockID { get; }
long TimeStamp { get; }
uint ImagePaddingX { get; }
uint ImagePaddingY { get; }
GvspPixelFormatType PixelFmt { get; }
IChunkData ChunkData { get; }
IGrabbedRawData Clone();
void Show(IntPtr pWnd);
void Show(IntPtr pWnd, float angle);
Bitmap ToBitmap(bool color);
}
1.to HImage
代码如下:文章来源:https://www.toymoban.com/news/detail-627522.html
public enum PixelFormatType
{
Mono8,
}
public class ImageData
{
public int Width { get; set; }
public int Height { get; set; }
public byte[] Raw { get; set; }
public PixelFormatType PixelFmt { get; set; }
public long TimeStamp { get; set; }
public HImage ToHImage()
{
HImage hImage = new HImage();
switch (PixelFmt)
{
case PixelFormatType.Mono8: //gray图像,彩色的大华相机还没用过
unsafe
{
void* p;
IntPtr ptr;
fixed (byte* pc = Raw)
{
p = (void*)pc;
ptr = new IntPtr(p);
}
hImage.GenImage1("byte", Width, Height, ptr);
}
break;
default:
throw new Exception("图像格式未收录");
break;
}
return hImage;
}
总结
跟随项目更新。文章来源地址https://www.toymoban.com/news/detail-627522.html
到了这里,关于相机取图后将数据转换成对应的图像处理库图像文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!