Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cv::Mat smallerImage;
- resize(imageMatrix, smallerImage, smallerImageSize);
- cv::Mat cvGreyScaledImage = smallerImage.clone();
- cv::cvtColor(smallerImage, cvGreyScaledImage, CV_BGR2GRAY);
- cv::Mat blurredGreyScaleImage = cvGreyScaledImage.clone();
- cv::GaussianBlur(cvGreyScaledImage, blurredGreyScaleImage, Size(11,11), 0);
- // filter out pixels with values between 240 & 255
- cv::Mat thresholdOriginal = blurredGreyScaleImage.clone();
- cv::threshold(blurredGreyScaleImage, thresholdOriginal, 240, 255, THRESH_BINARY);
- // Remove noise from area of interest
- // Erode (make smaller) area of interest - reduce noise
- cv::Mat errodedImage = thresholdOriginal.clone();
- int errosionIterations = 1;
- cv::erode(thresholdOriginal, errodedImage, NULL, cv::Point(-1,-1), errosionIterations);
- // Dilate (make bigger) area of interest - noise removed
- cv::Mat dilatedImage = errodedImage.clone();
- int dilationIterations = 16;
- cv::dilate(errodedImage, dilatedImage, NULL, cv::Point(-1,-1), dilationIterations);
- // Connected Component Analysis
- cv::Mat labeledImage = dilatedImage.clone();
- cv::connectedComponents(dilatedImage, labeledImage);
- // Glare score
- int nonZeroPixelsCount = countNonZero(labeledImage);
- float glareScore = float(nonZeroPixelsCount)/float(cellWidth * cellHeight);
Add Comment
Please, Sign In to add comment