Como posso detectar (e corrigir) a inclinação das imagens?
Eu tenho uma grande coleção de imagens digitalizadas e todas elas estão um pouco distorcidas, com uma área branca ao redor delas.
Portanto, essas imagens têm retângulos de cores, cercados por uma grande área branca. O problema é que esses retângulos de cores não são paralelos à borda da imagem.
Tenho certeza de que deve haver uma maneira de detectar programaticamente esses retângulos de cores, para que eu possa girar a imagem (sem distorção) e cortá-la para que apenas a parte interessante fique. Acho que não tenho muita certeza de como esse processo é chamado, por isso estou tendo problemas para procurar uma solução no Google.
Alguém sabe de uma abordagem que me inicie? Alguma biblioteca por aí que eu deveria procurar? Ou o nome de um algoritmo que ajudaria?
Estou planejando usar Java para este projeto, mas ainda não comecei, por isso estou aberto a sugestões de bibliotecas em qualquer idioma.