Найти углы страницы после применения грубого преобразования
Мой одноклассник и я в настоящее время работаем над проектом курса, и нам нужно некоторое руководство. Мы решили воссоздать приложение "CamScanner" с помощью Matlab.
Мы можем выбрать углы вручную, и мы успешно смогли применить перспективное преобразование, чтобы выровнять изображение и адаптивный порог Брэдли, чтобы получить желаемое черно-белое изображение.
Тем не менее, мы пытаемся улучшить наш проект, выбирая углы автоматически. Мы смогли обнаружить края, используя коробочный фильтр (Sobel) для вертикальной, горизонтальной и даже диагональной и еще больше улучшить результаты. (см. правильные картинки ниже).
Затем мы вычисляем преобразование Хафа, используя ребра, которые мы получили из предыдущего шага, и, таким образом, мы можем найти линии Хафа. Теперь нам осталось обнаружить углы, то есть найти 4 линии из 16, найденных в результате грубого преобразования. (Использование непосредственного преобразования четырех строк в резком преобразовании приведет к обнаружению всей границы изображения, 16 было идеальным для почти всех наших тестовых данных).
Любые предложения о том, как просто определить углы после сделанных нами шагов? Мы пытались обнаружить и HarrisFeatures, и DetectionMinEigenFeatures, чтобы обнаружить углы, и мы не получили удовлетворительных результатов. Мы открыты для любых предложений, спасибо!
Наши данные тестирования: 1. Справа; результаты после применения определения горизонтального / вертикального / диагонального края 2. Слева; 16 чертовых линий
PS: я не знал, где именно правильно разместить свой вопрос, поэтому я разместил здесь, а также в сообществе Matlab.