Пример #1
0
        private void BTN_CHECK_EDGE_DETECTION_Click(object sender, EventArgs e)
        {
            if (RDO_RECT_TYPE_DIA.Checked == true)
            {
                //MessageBox.Show("Under Construction.", "Comming Soon.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                bool bool_horizontal_dir = RDO_RECT_TYPE_HOR.Checked == true ? true : false;

                uc_tunning_view.VIEW_Set_Clear_DispObject();

                CMeasurePairRct rcProc = new CMeasurePairRct();


                int param_01_PeakCandidate = Convert.ToInt32(TXT_RECT_CANDIDATE_COUNT.Value);

                Bitmap bmp = uc_tunning_view.GetDisplay_Bmp();
                pm.SetImage(bmp);

                List <PointF> listPeak = pm.GetPeakListSorted(param_01_PeakCandidate, bool_horizontal_dir);

                _ToUI_DrawPeakAnalysis(listPeak, bool_horizontal_dir);

                uc_tunning_view.Refresh();
            }
        }
Пример #2
0
        public bool SetParam(CFigureManager fm, Bitmap bmp)
        {
            MAIN_IMAGE = bmp.Clone() as Bitmap;

            uc_tunning_view.BOOL_DRAW_CROSS = false;
            uc_tunning_view.SetDisplay(MAIN_IMAGE);
            uc_tunning_view.VIEW_SET_Mag_Origin();

            int imageW = 0;
            int imageH = 0;

            byte[] rawImage = Computer.HC_CONV_Bmp2Raw(bmp.Clone() as Bitmap, ref imageW, ref imageH);

            List <Bitmap> listImageRect = new List <Bitmap>();
            List <string> listFilesRect = new List <string>();

            this.fm = fm;

            //********************************************************************************************
            // For Rect
            //********************************************************************************************

            CHK_RECT_USE_AUTO_PEAK_DETECTION.Checked = true;
            CHK_RECT_USE_AUTO_PEAK_DETECTION_CheckedChanged(null, EventArgs.Empty);

            for (int i = 0; i < this.fm.COUNT_PAIR_RCT; i++)
            {
                CMeasurePairRct single = this.fm.list_pair_Rct.ElementAt(i);

                RectangleF rcFST = single.rc_FST.ToRectangleF();
                RectangleF rcSCD = single.rc_SCD.ToRectangleF();

                RectangleF rcMerged = CRect.GetMergedRect(rcFST, rcSCD);

                uc_tunning_view.DrawRect(rcMerged, Color.Red);
                uc_tunning_view.DrawString(single.NICKNAME, (int)(rcMerged.X), (int)(rcMerged.Y - 10), 10, Color.Yellow);

                byte[] rawCrop = Computer.HC_CropImage(rawImage, imageW, imageH, rcMerged);
                int    rcW     = (int)rcMerged.Width;
                int    rcH     = (int)rcMerged.Height;

                Bitmap bmpCrop = Computer.HC_CONV_Byte2Bmp(rawCrop, rcW, rcH);

                listFilesRect.Add(single.NICKNAME);
                listImageRect.Add(bmpCrop);
            }
            uc_thumb_nail_rect.LoadImages(listImageRect.ToArray(), listFilesRect);

            uc_tunning_view.fm.RC_FOCUS = new RectangleF(-1, -1, -1, -1);
            uc_tunning_view.fm.param_ptrn.RC_SEARCH_RGN = new RectangleF(-1, -1, -1, -1);
            return(true);
        }
Пример #3
0
        private CMeasurePairRct _FromUI_GetParameters_Rect()
        {
            int nValue = 0;

            CMeasurePairRct single = new CMeasurePairRct();

            single.param_03_bool_Use_AutoDetection = CHK_RECT_USE_AUTO_PEAK_DETECTION.Checked;

            // edge detection target for each rectangles
            int.TryParse(TXT_RECT_EDGE_DETEC_TARGET_INDEX_FST.Text, out nValue); single.param_04_peakTargetIndex_fst = nValue;
            int.TryParse(TXT_RECT_EDGE_DETEC_TARGET_INDEX_SCD.Text, out nValue); single.param_05_peakTargetIndex_scd = nValue;

            // candidate count
            int.TryParse(TXT_RECT_CANDIDATE_COUNT.Text, out nValue); single.param_06_peakCandidate = nValue;

            return(single);
        }
Пример #4
0
        private void uc_thumb_nail_rect_DoubleClick(object sender, EventArgs e)
        {
            int    nIndex = uc_thumb_nail_rect.FocusedItem.Index;
            Bitmap bmp    = uc_thumb_nail_rect.GetImageOriginal(nIndex);

            CMeasurePairRct single = fm.ElementAt_PairRct(nIndex);

            /***/ if (single.param_01_rc_type == IFX_RECT_TYPE.DIR_HOR)
            {
                RDO_RECT_TYPE_HOR.Checked = true;
            }
            else if (single.param_01_rc_type == IFX_RECT_TYPE.DIR_VER)
            {
                RDO_RECT_TYPE_VER.Checked = true;
            }
            else if (single.param_01_rc_type == IFX_RECT_TYPE.DIR_DIA)
            {
                RDO_RECT_TYPE_DIA.Checked = true;
            }

            // 01 Target Info
            TXT_RECT_SELECTED_INDEX.Text  = nIndex.ToString("N0");
            TXT_RECT_SELECTED_FIGURE.Text = single.NICKNAME;

            CHK_RECT_USE_AUTO_PEAK_DETECTION.Checked = single.param_03_bool_Use_AutoDetection;
            CHK_RECT_USE_AUTO_PEAK_DETECTION_CheckedChanged(null, EventArgs.Empty);

            // 02 edge detection type { 0 ~ 6 }
            TXT_RECT_EDGE_DETEC_TARGET_INDEX_FST.Text = single.param_04_peakTargetIndex_fst.ToString("N0");
            TXT_RECT_EDGE_DETEC_TARGET_INDEX_SCD.Text = single.param_05_peakTargetIndex_scd.ToString("N0");

            CB_RECT_TARGET_INDEX_FST.SelectedIndex = single.param_04_peakTargetIndex_fst;
            CB_RECT_TARGET_INDEX_SCD.SelectedIndex = single.param_05_peakTargetIndex_scd;
            // update UI from the first line data

            uc_tunning_view.VIEW_Set_Clear_DispObject();
            uc_tunning_view.SetDisplay(bmp);
            uc_tunning_view.VIEW_SET_Mag_Origin();
        }
Пример #5
0
        private void BTN_PARAM_WRITE_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Selected Figure Parameters Will Be Overwritten.\nDo You Want To Update?", "UPDATE CHECK", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
            {
                return;
            }

            // empty operation exception 171017
            if (fm.COUNT_PAIR_RCT == 0)
            {
                return;
            }

            CMeasurePairRct[] arrRect = fm.ToArray_PairRct();

            string strTarget = TXT_RECT_SELECTED_FIGURE.Text;

            int element = 0;

            Int32.TryParse(TXT_RECT_SELECTED_INDEX.Text, out element);

            CMeasurePairRct single = _FromUI_GetParameters_Rect();

            if (arrRect[element].NICKNAME == strTarget)
            {
                arrRect[element].param_03_bool_Use_AutoDetection /***/ = single.param_03_bool_Use_AutoDetection;
                arrRect[element].param_04_peakTargetIndex_fst /******/ = single.param_04_peakTargetIndex_fst;
                arrRect[element].param_05_peakTargetIndex_scd /******/ = single.param_05_peakTargetIndex_scd;
                arrRect[element].param_06_peakCandidate /************/ = single.param_06_peakCandidate;
                arrRect[element].param_07_windowSize /***************/ = single.param_07_windowSize;
            }
            this.fm.list_pair_Rct = arrRect.ToList();

            MessageBox.Show("Update Finished", "JOB FINISHED", MessageBoxButtons.OK, MessageBoxIcon.Information);
            eventDele_FinishTunning();
        }