/// <summary> /// 初始化參數 /// </summary> /// <param name="calibPlateParam">校正片擷取參數 (Calibration Plate Extraction Parameters)</param> /// <param name="calibQualityIssueParam">影像品質條件參數 (Quality Issue Conditions)</param> /// <param name="cameraParam">鏡頭參數 (Camera Parameters)</param> /// <param name="calibPlateDescrFile">校正片描述檔案</param> /// <param name="thickness">校正片厚度</param> public CalibrationAssistant(CalibrationPlateParam calibPlateParam , CalibrationQualityIssueParam calibQualityIssueParam , CameraParam cameraParam , string calibPlateDescrFile , double thickness) { _calibPlateParam = calibPlateParam; _calibQualityIssueParam = calibQualityIssueParam; _cameraParam = cameraParam; _calibPlateDescFile = calibPlateDescrFile; _thickness = thickness; init(); }
/// <summary> /// 取得校正片校正資訊 /// </summary> /// <param name="calibrationPlateDescriptionFile">校正片描述檔案</param> /// <param name="image">校正片影像</param> /// <param name="plateParam">校正片擷取參數</param> /// <param name="startCamerParam">鏡頭參數</param> /// <returns>校正片校正資訊模型</returns> public CalibrationPlateMarkViewModel GetCalibrationPlateMarkViewModel(string calibrationPlateDescriptionFile , HImage image , CalibrationPlateParam plateParam , HTuple startCamerParam) { var model = new CalibrationPlateMarkViewModel(); try { //找到校正板的區域 var calibRegion = image.FindCaltab(calibrationPlateDescriptionFile , plateParam.GaussianFilterSize , plateParam.MarkThreshold , plateParam.MinMarkDiam); //取得校正片 Mark 的位置和角度 HTuple markCenterCols; HPose estimatedStartPose; HTuple markCenterRows = image.FindMarksAndPose(calibRegion , calibrationPlateDescriptionFile , startCamerParam , plateParam.StartThresh , plateParam.DeltaThresh , plateParam.MinThresh , plateParam.Alpha , plateParam.MinContourLength , plateParam.MaxDiameterMarks , out markCenterCols , out estimatedStartPose); model.MarkCenterRows = new HTuple(markCenterRows); model.MarkCenterCols = new HTuple(markCenterCols); model.EstimatedMarkPose = new HTuple(estimatedStartPose); model.Valid = true; model.ErrorMessage = String.Empty; } catch (HOperatorException ex) { model.ErrorMessage = ex.Message; model.Valid = false; } return model; }
/// <summary> /// 取得校正影像品質報告 /// </summary> /// <param name="descFile"></param> /// <param name="calibImage"></param> /// <param name="plateParam"></param> /// <param name="startCameraParam"></param> /// <returns></returns> public CalibImageViewModel GetCalibtionImageReport(string descFile, CalibImage calibImage, CalibrationPlateParam plateParam, HTuple startCameraParam) { //ToDo return new CalibImageViewModel(); }