Образцы изображений на скане имеют прямоугольную форму и все они примерно одинакового размера.Существуют различные методы поиска прямоугольников в изображении (даже при совершенно произвольном повороте), но я начну с более фундаментальных методов.
- Для нахождения линий визображение, даже когда фон шумный.Из подгонки линии Хафа вы можете найти точки пересечения и, возможно, сравнить эти точки пересечения с точками, найденными при обнаружении углов (см. Ниже 3).
- У краевых точек на линиях градиенты перпендикулярны этим линиям.При поиске краевых точек вы можете отдавать предпочтение краевым точкам, которые примерно равны расстоянию L или расстоянию W от других краевых точек с градиентами в параллельном направлении, где L и W - известная длина и ширина ваших изображений.
- Детекторы углов могут помочь идентифицировать углы ваших маленьких прямоугольных изображений.Вы знаете длину и ширину изображений, которые должны помочь вам принять / отклонить углы.
- Если вы хотите получить фантазию (что я не рекомендую), тогда простой метод нормализованной взаимной корреляции может обнаружитьвсе экземпляры «шаблонного» подизображения на большом изображении.Техника немного грубая, но она работает хорошо, если нет большого вращения.Поскольку подизображения имеют четко определенные границы известной формы и (предположительно) постоянного размера, было бы проще просто найти края, а не пытаться сопоставить содержимое изображения.
После того как выопределили местоположение и ориентацию каждого прямоугольного подизображения, затем простое вращательное преобразование + интерполяция может генерировать версию «правой стороной вверх» каждого изображения.Со сканерами у вас не будет проблем с искажением перспективы, но если в какой-то момент в будущем вы будете делать снимки изображений (?) Под углом, то аффинное преобразование может отобразить искаженные трапециевидные изображения в прямоугольные изображения.
Преобразование Хафа http://en.wikipedia.org/wiki/Hough_transform
Обнаружение углов http://en.wikipedia.org/wiki/Corner_detection
Простое обнаружение кромок, которое должно работать достаточно хорошо для вашего приложения, см. В разделе «Другие методы первого порядка» встатья Edge Detection в Википедии.Техника проста для понимания и проста в реализации.http://en.wikipedia.org/wiki/Edge_detection
Удачи и еще раз с Новым годом!