/// <summary> /// Calls the actual <c>addQualityIssue</c> /// method, with the feature list obtained from the /// calibration image <c>cImg</c> /// </summary> /// <param name="cImg"> /// Calibration image model, which has been tested for /// the quality feature defined with <c>type</c> /// </param> /// <param name="type"> /// Constant starting with QUALITY_* describing one of the quality /// features /// </param> /// <param name="score"> /// Score determined for the quality feature /// </param> public void addQualityIssue(CalibImage cImg, int type, double score) { ArrayList qList = cImg.getQualityIssueList(); addQualityIssue(qList, type, score); }
/// <summary> /// Tests different quality features for the calibration image /// <c>cImg</c> /// </summary> /// <returns> /// Returns a value indicating the success or failure /// of the quality assessment /// </returns> public bool testQualityIssues(CalibImage cImg) { ArrayList qList; HObject markContours; HObject plateRegion; HImage mImg; HTuple score, score2, contrast; int numRegions, numContours; bool qualityFailure; mImg = cImg.getImage(); qList = cImg.getQualityIssueList(); procedure = new QualityProcedures(); contrast = new HTuple(); qualityFailure = false; // DescriptionFileName = mDescrFileName; ; try { procedure.find_caltab_edges(mImg, out plateRegion, out markContours, new HTuple(mDescrFileName)); numRegions = plateRegion.CountObj(); numContours = markContours.CountObj(); if(mImageTests < QUALITY_ISSUE_TEST_NONE) { if(numRegions == 0) { qualityFailure = true; } else { procedure.eval_caltab_overexposure(mImg, plateRegion, out score); addQualityIssue(qList, QUALITY_ISSUE_IMG_EXPOSURE, score.D); } if(numContours == 0) { qualityFailure = true; } else { procedure.eval_caltab_contrast_homogeneity(mImg, markContours,out contrast, out score, out score2); addQualityIssue(qList, QUALITY_ISSUE_IMG_CONTRAST, score.D); addQualityIssue(qList, QUALITY_ISSUE_IMG_HOMOGENEITY, score2.D); procedure.eval_caltab_size(mImg, plateRegion, markContours, out score); addQualityIssue(qList, QUALITY_ISSUE_IMG_CALTAB_SIZE, score.D); } if(mImageTests == QUALITY_ISSUE_TEST_ALL) { procedure.eval_caltab_focus(mImg, markContours,contrast , out score); addQualityIssue(qList, QUALITY_ISSUE_IMG_FOCUS, score.D); } } } catch(HOperatorException e) { throw(e); } return qualityFailure; }