Я пытаюсь найти ограничивающие поля текста в изображении и в настоящее время использую этот подход:
// calculate the local variances of the grayscale image
Mat t_mean, t_mean_2;
Mat grayF;
outImg_gray.convertTo(grayF, CV_32F);
int winSize = 35;
blur(grayF, t_mean, cv::Size(winSize,winSize));
blur(grayF.mul(grayF), t_mean_2, cv::Size(winSize,winSize));
Mat varMat = t_mean_2 - t_mean.mul(t_mean);
varMat.convertTo(varMat, CV_8U);
// threshold the high variance regions
Mat varMatRegions = varMat > 100;
При задании такого изображения:
Тогда, когда я показываю varMatRegions
, я получаю это изображение:
Как вы можете видеть, он несколько сочетает левый блок текста с заголовком карты, для большинства карт этот метод отлично работает, но на более загруженных карточках это может вызвать проблемы.
Причина, по которой плохо контактировать, заключается в том, что она ограничивает рамку контура почти всей картой.
Может ли кто-нибудь предложить другой способ, я могу найти текст, чтобы обеспечить правильное обнаружение текста?
200 баллов тому, кто может найти текст на карте выше этих двух.