Pergunta

Qual é um bom método para alinhar imagens que podem ter diferentes rotações, exposições, etc., mas têm o mesmo fundo ou outra referência fixa?

Adobe Photoshop pode fazer isso com seu recurso “Photomerge”.

Como posso fazer isso programaticamente?Existe um aplicativo de código aberto que faz isso?

Foi útil?

Solução

Você quer pesquisar image stitching ou image registration pois esses são os nomes pelos quais também é conhecido.Esse artigo da Wikipédia tem algumas informações úteis.Mas só conheço bibliotecas comerciais que fazem isso, e não de código aberto.

O esboço básico do processo (na biblioteca comercial que conheço) é este:

  1. Inicialmente você deve especificar o alinhamento aproximado das imagens, ou seja,
    • A imagem A está à esquerda da imagem B e elas se sobrepõem em menos de 10%.
    • A imagem C está à direita da imagem B e elas se sobrepõem em 10-20%, etc.
  2. Com base nos parâmetros em 1), o algoritmo tentará encontrar um "modelo" exclusivo nas regiões sobrepostas.Em seguida, usará um correspondência de modelo técnica para localizar o modelo em cada uma das 2 imagens sobrepostas.
  3. O item 2) pode ser repetido várias vezes para fornecer uma série de localizações correspondentes, que podem então ser usadas para fornecer um ajuste exato.

No passo 3 você também pode levar em conta a distorção, como rotação e distorção da lente.Mas para permitir alterações na cor, o passo 2 precisaria ser mais avançado (ou seja,não apenas com base no nível de pixel da escala de cinza).

Há uma solicitação de recurso para adicionar esta funcionalidade ao Biblioteca AForge, mas no momento não foi feito e não sei o estado atual.

Outras dicas

Atualizando o Resposta por Matt Warren, há um Artigo sobre o CodeProject explicando como a costura automática da imagem pode ser feita usando o acordo.net. Também explica parte da teoria por trás do processo.

A estrutura Accord.net é uma estrutura escrita em C# que estende a estrutura original do Aforge.NET com novas ferramentas e bibliotecas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top