VisionMaster和OpenCVSharp互转Mat和图像变量

VisionMaster和OpenCVSharp互转Mat和图像变量

 //实例化ImageData类型图像
ImageData img = new ImageData();GetImageValue("in0", ref img);ImageData imgOut = new ImageData();Mat srcImage = Mat.Zeros(img.Heigth, img.Width, MatType.CV_8UC1); Rect rect = new Rect(0, 0, 300, 300); if (img.PixelFormat == ImagePixelFormate.MONO8){     
//开辟内存空间     
IntPtr grayPtr = Marshal.AllocHGlobal(img.Width * img.Heigth);     
//向内存空间中写入数据     
Marshal.Copy(img.Buffer, 0, grayPtr, img.Buffer.Length);      
//imagedata转Mat     
srcImage = new Mat(img.Heigth, img.Width, MatType.CV_8UC1, grayPtr);        
//设置ROI                
Mat imageROI = new Mat(srcImage, rect);   
Mat dstImage = Mat.Zeros(imageROI.Height, imageROI.Width, MatType.CV_8UC1);    
//调用OpenCV中的接口进行图像处理     
Cv2.Threshold(imageROI,dstImage,10,120,ThresholdTypes.Otsu);  

//将处理后的图像拷贝到原图ROI区域    
dstImage.CopyTo(imageROI);     byte[] datab = new Byte[srcImage.Width * srcImage.Height];      //mat转ImageData     
srcImage.GetArray(0, 0, datab);   
imgOut.Buffer = datab;     
imgOut.Width = srcImage.Width;   
imgOut.Heigth = srcImage.Height;
imgOut.PixelFormat = ImagePixelFormate.MONO8;    
//用完记得释放指针    
Marshal.FreeHGlobal(grayPtr);}SetImageValue("imageOut", imgOut);
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值