Я добавляю функцию сканирования карт в свое приложение для iOS и пытаюсь добавить обнаружение бликов. Поэтому при обнаружении бликов во время сканирования пользователю предлагается изменить положение карты.
Я попытался реализовать его с помощью OpenCV, используя
https://www.pyimagesearch.com/2016/10/31/detecting-multiple-bright-spots-in-an-image-with-python-and-opencv/
https://www.pyimagesearch.com/2014/09/29/finding-brightest-spot-image-using-python-opencv/
Поиск ярких пятен на изображении с помощью opencv
Но, учитывая, что у меня очень мало базовых знаний в OpenCV и компьютерном зрении, я не могу получить желаемые результаты.
Пожалуйста, направьте меня в правильном направлении, как я могу добиться обнаружения бликов с помощью OpenCV / CoreImage / GPUImage.
Мой код пока
+ (bool) imageHavingGlare:(CMSampleBufferRef)buffer {
cv::Mat matImage = [OpenCVWrapper matFromBuffer:buffer];
cv::Mat matImageGrey;
cv::cvtColor(matImage, matImageGrey, CV_BGRA2GRAY);
GaussianBlur(matImageGrey, matImageGrey, cvSize(11,11), 0);
cv::Mat matImageBinarized;
cv::threshold(matImageGrey, matImageBinarized, 30, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
double min, max;
cv::Point min_loc, max_loc;
cv::minMaxLoc(matImageBinarized, &min, &max, &min_loc, &max_loc);
if(((max_loc.x > 0) && (max_loc.y > 0)))
{
return true;
}
return false;
}