VM脚本真的好用
9篇
- VM4.2 脚本调用halcon解码
- 浅谈VsionMaster:用脚本最简代码,调用halcon
- 浅谈VsionMaster:用脚本,做一些好玩的东西。
- VisionMaster在脚本更改存图路径
- 脚本输出泛型(数组)的方法
- VM引用自定义dll实现个性化功能(VM4.1)
- 【共享学习】---脚本实现浮点数保留N位小数
- 用脚本调用sdk采集图片
- 【共享学习】---脚本实现修改字符串指定位置字符
/// <summary>
/// 流程执行一次进入Process函数
/// </summary>
/// <returns></returns>
public bool Process()
{
//每次执行将进入该函数,此处添加所需的逻辑流程处理
//实例化ImageData类型图像
ImageData img=new ImageData();
GetImageValue("in0",ref img);
HObject ho_image;
HOperatorSet.GenEmptyObj(out ho_image);
if (img.PixelFormat == ImagePixelFormate.MONO8)
{
//开辟空间
IntPtr grayPtr=Marshal.AllocHGlobal(img.Width*img.Heigth);
//向内存空间中写入数据
Marshal.Copy(img.Buffer,0,grayPtr,img.Buffer.Length);
HTuple w,h,s;
w=img.Width;
h=img.Heigth;
s=grayPtr;
HOperatorSet.GenImage1(out ho_image,"byte",w,h,grayPtr);
HTuple w1,h1,s1;
HOperatorSet.GetImageSize(ho_image,out w1,out h1);
SetIntValue("out1",h1);
SetImageValue("out0",img);
//创建一个二维码数据class模型
HObject ho_SymbolXLDs;
HTuple hv_DataCodeHandle = null, hv_ResultHandles = null;
HTuple hv_DecodedDataStrings = null;
//创建一个二维码数据class模型
HOperatorSet.CreateDataCode2dModel("QR Code", "default_parameters", "maximum_recognition",
out hv_DataCodeHandle);
//-检测和读取图像中的二维数据代码符号或训练二维数据代码模型。
HOperatorSet.FindDataCode2d(ho_image, out ho_SymbolXLDs, hv_DataCodeHandle, "train",
"all", out hv_ResultHandles, out hv_DecodedDataStrings);
//删除2D数据代码模型并释放分配的内存。
HOperatorSet.ClearDataCode2dModel(hv_DataCodeHandle);
ho_image.Dispose();
ho_SymbolXLDs.Dispose();
SetStringValue("out2",hv_DecodedDataStrings);
//用完记得释放指针
Marshal.FreeHGlobal(grayPtr);
}
return false;
}
请问需要调用库文件吗?我无法在脚本里使用halcon的算子,已经引用了halcon的库 HalconDotNet;
OpencvSharp存图方法:
引用:\Applications\3rdLib\OpenCv 路径下的 OpenCvSharp.dll
引用路径还要放 OpenCvSharpExtern.dll
具体实现的方法:
ImageData img=new ImageData();
GetImageValue("in0",ref img);
Mat OImage=new Mat(img.Heigth,img.Width,MatType.CV_8UC1,img.Buffer);
OImage.ImWrite(@"C:\Users\Administrator\Desktop\TestMiniExcel\123.bmp");