public void Reset() { if (SearchRegion != null && !SearchRegion.IsInitialized()) { SearchRegion.Dispose(); } SearchRegion = null; refImage = null; createShapeModel = null; FindShapeModeRoiList = new List <ROI>(); }
//查找模板 public bool FindShapeModeAct(HImage refImage, CreateShapeModel createShapeModel, HImage image) { this.createShapeModel = createShapeModel; this.refImage = refImage; if (createShapeModel.hShapeModel == null || !createShapeModel.hShapeModel.IsInitialized() || createShapeModel.createNewModelID) { if (!createShapeModel.CreateShapeModelAct(refImage)) { return(false); } } try { HImage searchImage; if (SearchRegion != null && SearchRegion.IsInitialized()) { searchImage = image.ReduceDomain(SearchRegion); } else { searchImage = image.Clone(); } row = new HTuple(); column = new HTuple(); angle = new HTuple(); scale = new HTuple(); score = new HTuple(); createShapeModel.hShapeModel.SetShapeModelParam("border_shape_models", "false"); createShapeModel.hShapeModel.FindScaledShapeModel( searchImage, createShapeModel.angleStart, createShapeModel.angleExtent, createShapeModel.scaleMin, createShapeModel.scaleMax, minScore, numMatches, maxOverlap, new HTuple(subPixel).TupleConcat("max_deformation 1"), new HTuple(new int[] { createShapeModel.numLevels, numLevels }), greediness, out row, out column, out angle, out scale, out score); searchImage.Dispose(); } catch { return(false); } return(true); }
public void Close() { if (resultXLDCont != null && resultXLDCont.IsInitialized()) { resultXLDCont.Dispose(); } resultXLDCont = null; refImage = null; createShapeModel = null; if (SearchRegion != null && SearchRegion.IsInitialized()) { SearchRegion.Dispose(); } SearchRegion = null; }
public void SerializeCheck() { if (resultXLDCont != null && resultXLDCont.IsInitialized()) { resultXLDCont.Dispose(); } refImage = null; createShapeModel = null; if (SearchRegion != null && !SearchRegion.IsInitialized()) { SearchRegion = null; } using (Stream objectStream = new MemoryStream()) { System.Runtime.Serialization.IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); formatter.Serialize(objectStream, this); } }