Máscara automaticamente fora de foco parte de uma imagem


9

Para um projeto de pesquisa, seria útil obter apenas a parte em foco de uma imagem. Alguém conhece algum software que pode fazer isso? Eu sei que a próxima versão (em algumas semanas) do Photoshop CC terá algo parecido, mas existem outras opções?


Para sua informação, seu uso de "get" é muito ambíguo aqui. O que você quer dizer com "obtenha apenas esta parte" da imagem? Você quer dizer que são os únicos pixels que você deseja permanecer no arquivo? Ou você simplesmente deseja identificar essa área para algum tipo de análise ou o quê? "Select" seria um termo melhor, ou "mascarar" ou mesmo "identificar"
Jasmine

Se você tiver mais de uma imagem (ou seja, semelhante ao empilhamento de foco, mas sem empilhamento real), eu teria uma resposta que forneceria máscaras em foco.
Unapiedra

Bom ponto @ Jasmine. Eu tenho galhos de um arbusto em foco contra árvores / arbustos de fundo (colocar uma chave azul não é uma opção), portanto, para reduzir o erro, quero limitar a análise aos galhos. Isso pode ser feito mascarando ou com um arquivo reduzido com apenas os pixels em foco.
LaurensP

@ Unapiedra, é a primeira vez que ouve sobre o empilhamento de foco. Como esse método ou derivado me daria uma máscara em foco? Vou tirar várias fotos por dia durante um mês, quadro fixo e distância focal.
LaurensP

@LaurensP: Não ajudaria neste caso. Suspeito fortemente que sua pergunta esteja errada aqui: é uma questão de programação e deve ser movida para o StackOverflow. Você também pode expandir sua pergunta para dizer o que realmente deseja fazer / analisar / etc. Até agora, você revelou que deseja analisar galhos de um arbusto, como e por que não disse. Talvez cluster e segmentação sejam uma opção? Faça o upload de uma imagem de amostra enquanto estiver nela.
Unapiedra

Respostas:


5

Eu normalmente uso o GIMP para isso - isso provavelmente precisa ser refinado para procedimentos automáticos. Meu procedimento é o seguinte:

  1. Carrego a imagem, neste caso http://rlog.rgtti.com/wp-content/uploads/2013/01/10/macro-lenses-are-expensive-all-of-them/paseo_15sep_more_rosse.jpg

  2. Agora, copio a camada de fundo e transformo a nova camada em escala de cinza.

  3. Aplico a detecção de borda por diferença de gaussiana:

insira a descrição da imagem aqui

brincando com os parâmetros para ter uma boa área definida. Aplique o filtro

  1. Agora você aplica um limite à imagem:

insira a descrição da imagem aqui

... e este é um mapa dos seus nítidos (quanto nítidos você decide na etapa anterior, definindo os parâmetros para os filtros).

  1. Agora você pode usar as ferramentas "selecionar por cores", clicar no preto e aumentar a seleção um pouco:

insira a descrição da imagem aqui

... quando estiver satisfeito, você pode salvar a seleção em um canal.

Observe que a seleção não inclui as áreas nítidas que são uniformemente coloridas, sem arestas. Não conheço nenhuma maneira de fazer isso automaticamente (é possível?); mas você pode copiar o canal para uma nova camada e

  1. edite manualmente a camada para preencher as áreas nítidas com preto:

insira a descrição da imagem aqui

... e repita o procedimento de seleção por cor para criar uma nova máscara.


Isso fornecerá áreas texturizadas (com bordas). Seu uso do cultivo é inteligente, mas o resultado não é perfeito. Olhe para o interior da folha no lado esquerdo. Está em foco, mas não completamente preto na máscara. Eu acho que isso pode ser impossível de resolver, pois não se pode distinguir entre fora de foco e sem textura.
Unapiedra

0

No Hugin, você pode usar uma ferramenta que faz isso. Isso é chamado enfuso.

Problema : Funciona apenas em várias imagens.

Aqui você encontra um tutorial sobre o uso de enfuse para empilhamento de foco. Você pode obter as máscaras (que é o que você deseja) usando --save-masks.

enfuse --exposure-weight=0 --saturation-weight=0 --contrast-weight=1 \
       --hard-mask --save-masks --output=base.tif INPUTImage*.tif

No entanto, observe que, embora isso seja automatizado, a abordagem básica é a mesma da resposta da Rmano: Detecte grande contraste local. Para uma explicação muito mais detalhada, consulte Detecção de contraste local e Empilhamento avançado de foco na documentação do Enfuse.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.