/// <summary> /// 通过图像信息执行 /// </summary> /// <param name="imageInfo">相机信息</param> /// <param name="outputs">输出结果</param> public void ExecuteByImageInfo(ImageInfo imageInfo, out ItemCollection outputs) { if (VisionOperation == null) { Exception exception = new NullReferenceException("VisionOperation invalid"); RunStatus = new RunStatus(0, EResult.Error, exception.Message, exception); throw exception; } try { //转换成HImage图像 hImage?.Dispose(); CreateHImage(imageInfo, out hImage); VisionOperation.Execute(hImage, out outputs); RunStatus = VisionOperation.RunStatus; } catch (Exception ex) { RunStatus = new RunStatus(0, EResult.Error, ex.Message, ex); throw; } }
private bool disposedValue = false; // 要检测冗余调用 protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: 释放托管状态(托管对象)。 } // TODO: 释放未托管的资源(未托管的对象)并在以下内容中替代终结器。 // TODO: 将大型字段设置为 null。 VisionOperation?.Dispose(); VisionOperation = null; //Camera = null; disposedValue = true; } }
/// <summary> /// 通过本地图片执行 /// </summary> /// <param name="file">本地图片路径</param> /// <param name="outputs">输出参数</param> public void ExecuteByFile(string file, out ItemCollection outputs) { if (VisionOperation == null) { Exception exception = new NullReferenceException("VisionOperation invalid"); RunStatus = new RunStatus(0, EResult.Error, exception.Message, exception); throw exception; } try { hImage?.Dispose(); HOperatorSet.ReadImage(out hImage, file); VisionOperation.Execute(hImage, out outputs); RunStatus = VisionOperation.RunStatus; } catch (Exception ex) { RunStatus = new RunStatus(0, EResult.Error, ex.Message, ex); throw; } }