////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 이미지 검사 //설명 : 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); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 이미지 검사 //설명 : 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); }