Example #1
0
        public void detectNoWire(HObject ho_GrayImage, out HObject ho_Contours, out HObject ho_SelectedRegions,
                                 HTuple hv_Row, HTuple hv_Column, out HTuple hv_string, out HTuple hv_flag)
        {
            // Local iconic variables

            HObject ho_Rectangle_FoV, ho_ImageReduced_Fov;
            HObject ho_Characters, ho_ConnectedRegions, ho_RegionUnion;

            // Local control variables

            HTuple hv_Row_st = null, hv_Col_st = null;
            HTuple hv_Threshold = null, hv_Area = null, hv_Row3 = null;
            HTuple hv_Column3 = null;

            // Initialize local and output iconic variables
            HOperatorSet.GenEmptyObj(out ho_Contours);
            HOperatorSet.GenEmptyObj(out ho_SelectedRegions);
            HOperatorSet.GenEmptyObj(out ho_Rectangle_FoV);
            HOperatorSet.GenEmptyObj(out ho_ImageReduced_Fov);
            HOperatorSet.GenEmptyObj(out ho_Characters);
            HOperatorSet.GenEmptyObj(out ho_ConnectedRegions);
            HOperatorSet.GenEmptyObj(out ho_RegionUnion);
            hv_string = "";
            hv_flag   = 0;
            hv_Row_st = hv_Row.Clone();
            hv_Col_st = hv_Column.Clone();
            ho_Rectangle_FoV.Dispose();
            HOperatorSet.GenRectangle1(out ho_Rectangle_FoV, hv_Row_st - 20, hv_Col_st - 20,
                                       hv_Row_st + 90, hv_Col_st + 70);
            ho_ImageReduced_Fov.Dispose();
            HOperatorSet.ReduceDomain(ho_GrayImage, ho_Rectangle_FoV, out ho_ImageReduced_Fov
                                      );
            //detect No Wire
            ho_Characters.Dispose();
            HOperatorSet.CharThreshold(ho_ImageReduced_Fov, ho_Rectangle_FoV, out ho_Characters,
                                       2, 90, out hv_Threshold);
            ho_ConnectedRegions.Dispose();
            HOperatorSet.Connection(ho_Characters, out ho_ConnectedRegions);
            ho_SelectedRegions.Dispose();
            HOperatorSet.SelectShape(ho_ConnectedRegions, out ho_SelectedRegions, "area",
                                     "and", 50, 99999);
            ho_RegionUnion.Dispose();
            HOperatorSet.Union1(ho_SelectedRegions, out ho_RegionUnion);

            HOperatorSet.AreaCenter(ho_RegionUnion, out hv_Area, out hv_Row3, out hv_Column3);

            if ((int)(new HTuple(hv_Area.TupleLess(200))) != 0)
            {
                ho_Contours.Dispose();
                HOperatorSet.GenContourRegionXld(ho_Rectangle_FoV, out ho_Contours, "border");
                hv_string = "No Wire";
                hv_flag   = 3;

                //flag=3:NoWire
            }
            else
            {
                hv_flag = 1;
            }


            ho_Rectangle_FoV.Dispose();
            ho_ImageReduced_Fov.Dispose();
            ho_Characters.Dispose();
            ho_ConnectedRegions.Dispose();
            ho_RegionUnion.Dispose();

            return;
        }