| | |
| | | Result = true; |
| | | bCompleted = false; |
| | | Msg = ""; |
| | | OutputImage = null; |
| | | if (OutputImage != null) |
| | | { |
| | | if (OutputImage is HObject) |
| | | ((HObject)OutputImage).Dispose(); |
| | | else if (OutputImage is Mat) |
| | | ((Mat)OutputImage).Dispose(); |
| | | else if (OutputImage is Bitmap) |
| | | ((Bitmap)OutputImage).Dispose(); |
| | | OutputImage = null; |
| | | } |
| | | |
| | | if (Record != null) |
| | | Record.Dispose(); |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 图像增强算法-边缘增强 |
| | | /// </summary> |
| | | /// <param name="ho_Image">待测图片</param> |
| | | /// <param name="hv_Wid">掩膜宽</param> |
| | | /// <param name="hv_High">掩膜高</param> |
| | | /// <param name="hv_Fac">增强因子</param> |
| | | /// <param name="hv_Row1">起始纵坐标</param> |
| | | /// <param name="hv_Column1">起始横坐标</param> |
| | | /// <param name="hv_Row2">结束纵坐标</param> |
| | | /// <param name="hv_Column2">结束横坐标</param> |
| | | public static void ImageEnhancement(HObject ho_Image, out HObject ho_OutImage, HTuple hv_ImageEnhancementType, HTuple hv_Wid, HTuple hv_High, HTuple hv_Fac) |
| | | { |
| | | HOperatorSet.GenEmptyObj(out ho_OutImage); |
| | | try |
| | | { |
| | | HTuple hv_ImageEnhancementTypeOut = new HTuple(); |
| | | hv_ImageEnhancementTypeOut.Dispose(); |
| | | hv_ImageEnhancementTypeOut = new HTuple(hv_ImageEnhancementType); |
| | | |
| | | hv_Wid.Dispose(); |
| | | hv_High.Dispose(); |
| | | ho_OutImage.Dispose(); |
| | | |
| | | //设置图像增强算法 |
| | | if ((int)(new HTuple(hv_ImageEnhancementTypeOut.TupleEqual("emphasize"))) != 0) |
| | | { |
| | | hv_ImageEnhancementTypeOut.Dispose(); |
| | | hv_ImageEnhancementTypeOut = "emphasize"; |
| | | HOperatorSet.Emphasize(ho_Image, out ho_OutImage, hv_Wid, hv_High, hv_Fac); |
| | | } |
| | | else if ((int)(new HTuple(hv_ImageEnhancementTypeOut.TupleEqual("equHisto"))) != 0) |
| | | { |
| | | hv_ImageEnhancementTypeOut.Dispose(); |
| | | hv_ImageEnhancementTypeOut = "equHisto"; |
| | | HOperatorSet.ScaleImageMax(ho_Image, out ho_OutImage); |
| | | } |
| | | else |
| | | { |
| | | hv_ImageEnhancementTypeOut.Dispose(); |
| | | hv_ImageEnhancementTypeOut = "scaleMax"; |
| | | HOperatorSet.EquHistoImage(ho_Image, out ho_OutImage); |
| | | } |
| | | return; |
| | | } |
| | | catch (HalconException HDevExpDefaultException) |
| | | { |
| | | |
| | | hv_Wid.Dispose(); |
| | | hv_High.Dispose(); |
| | | |
| | | throw HDevExpDefaultException; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卡尺算法 |
| | | /// </summary> |
| | | /// <param name="ho_Image">待测图片</param> |