Обнаружение бликов на изображении - PullRequest
0 голосов
/ 21 мая 2019

Я добавляю функцию сканирования карт в свое приложение для 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;
}
...