Ejemplo n.º 1
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 이미지 검사
        //설명 : 4장의 이미지를 PMS통해 합친다.
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public bool SetInspectionBusbar(structureMeasureParameter objParameter)
        {
            bool bReturn   = false;
            var  pDocument = CDocument.GetDocument;
            // 에러 로그
            string    strErrorLog  = string.Format("CProcessVisionProcess60 {0} SetInspectionBusbar ", m_iCameraIndex);
            Stopwatch objStopWatch = new Stopwatch();

            objStopWatch.Start();
            do
            {
                // pDocument.SetUpdateLog( ( CDefine.enumLogType )( ( int )CDefine.enumLogType.LOG_VISION_PROCESS_CAMERA_0 + m_iCameraIndex ), strErrorLog );

                try {
                    List <byte[]> objImageByte;
                    List <byte[]> objImageByteSecond;

                    CogImageToByteArr(objParameter.objImage, out objImageByte);
                    CogImageToByteArr(objParameter.objImage, out objImageByteSecond);

                    int iWidth  = objParameter.objImageBitmap.Width;
                    int iHeight = objParameter.objImageBitmap.Height;

                    CogImage8Grey         objCogImage = new CogImage8Grey(objParameter.objImageBitmap);
                    ICogImage8PixelMemory pmr         = objCogImage.Get8GreyPixelMemory(CogImageDataModeConstants.Read, 0, 0, iWidth, iHeight);
                    int iStride = pmr.Stride;

                    iWidth = iStride;

                    Mat objMatImage = new Mat(iHeight, iWidth, MatType.CV_8UC1, objImageByte[0]);

                    Mat objMatImageSecond = new Mat(iHeight, iWidth, MatType.CV_8UC1, objImageByteSecond[0]);

                    //m_objMeasure.SetBusbarParameters( objParameter.iThresh, objParameter.iMaskLen, objParameter.iMeasureInterv, objParameter.iCaliperLen, objParameter.iSkipLenFromCenter );

                    //DoMeasureWelding( int nWidth, int nHeight, byte* pPMS1, int nLRLowThresh, int nLRContinousLen, int nLRHighThresh, byte* pPMS3, int nTBThresh, int nTBContinousLen );
                    unsafe {
                        m_objMeasure.DoBusbarMeasureWelding(iWidth, iHeight, objMatImage.DataPointer, objParameter.nLRLowThresh, objParameter.nLRContinousLen, objParameter.nLRHighThresh, objMatImageSecond.DataPointer, objParameter.nTBThresh, objParameter.nTBContinousLen);
                    }
                } catch (Exception ex) {
                    Trace.WriteLine("CMeasureManager.cs -> SetPMSImage ---" + ex.StackTrace);
                    break;
                }
                bReturn = true;
            } while(false);
            //CDocument.GetDocument.SetUpdateLog( CDefine.enumLogType.LOG_ETC, "Measure SetInspection TactTime : " + objStopWatch.ElapsedMilliseconds.ToString() );

            return(bReturn);
        }
Ejemplo n.º 2
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 이미지 검사
        //설명 : 4장의 이미지를 PMS통해 합친다.
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public bool SetInspectionSensor(structureMeasureParameter objParameter)
        {
            bool bReturn   = false;
            var  pDocument = CDocument.GetDocument;
            // 에러 로그
            string    strErrorLog  = string.Format("CMeasureManager {0} SetInspectionSensor ", m_iCameraIndex);
            Stopwatch objStopWatch = new Stopwatch();

            objStopWatch.Start();
            do
            {
                // pDocument.SetUpdateLog( ( CDefine.enumLogType )( ( int )CDefine.enumLogType.LOG_VISION_PROCESS_CAMERA_0 + m_iCameraIndex ), strErrorLog );

                try {
                    List <byte[]> objImageByte;
                    List <byte[]> objImageByteSecond;

                    CogImageToByteArr(objParameter.objImage, out objImageByte);
                    CogImageToByteArr(objParameter.objImage, out objImageByteSecond);

                    int iWidth  = objParameter.objImageBitmap.Width;
                    int iHeight = objParameter.objImageBitmap.Height;

                    CogImage8Grey         objCogImage = new CogImage8Grey(objParameter.objImageBitmap);
                    ICogImage8PixelMemory pmr         = objCogImage.Get8GreyPixelMemory(CogImageDataModeConstants.Read, 0, 0, iWidth, iHeight);
                    int iStride = pmr.Stride;

                    iWidth = iStride;

                    Mat objMatImage = new Mat(iHeight, iWidth, MatType.CV_8UC1, objImageByte[0]);

                    Mat objMatImageSecond = new Mat(iHeight, iWidth, MatType.CV_8UC1, objImageByteSecond[0]);

                    unsafe {
                        m_objMeasure.DoSensorMeasure(iWidth, iHeight, objMatImage.DataPointer, objParameter.nSensorStdWid, objParameter.nSensorStdHgt, objParameter.nThresh);
                    }
                } catch (Exception ex) {
                    Trace.WriteLine("CMeasureManager.cs -> SetPMSImage ---" + ex.StackTrace);
                    break;
                }
                bReturn = true;
            } while(false);
            //CDocument.GetDocument.SetUpdateLog( CDefine.enumLogType.LOG_ETC, "Measure SetInspection TactTime : " + objStopWatch.ElapsedMilliseconds.ToString() );

            return(bReturn);
        }