Existe um programa que possa analisar a resolução "real" de uma imagem?

8

Vamos pegar a imagem A: imagem de 2560 * 1920 pixels em foco perfeito. Afiado como uma navalha. São 5 Mpix.

Vamos pegar a imagem B: imagem A redimensionada para 5120 * 3840. Agora é um arquivo de 20 Mpix, mas não há novos dados na imagem; portanto, usando o bom senso, ainda é apenas um arquivo de 5 Mpix, apenas "inchado".

Teoricamente, deve-se reduzir gradualmente as dimensões da imagem B até que seja detectada uma nitidez razoável (aproximando-a o máximo possível da imagem A, embora sem compará-las nesse momento) e, assim, derivar a contagem "verdadeira" de megapixels da imagem: a tamanho abaixo do qual as imagens estão começando a perder seus detalhes.

Esse valor pode ser facilmente usado para determinar a utilidade de uma foto - se eu fotografo um pouco fora de foco, ainda posso imprimi-lo em um tamanho menor e ninguém notará. Ou pode ajudar na avaliação da qualidade da lente ou do sensor - se uma câmera de 24 Mpix não conseguir capturar uma imagem com mais de 8 Mpix "verdadeiras", então algo não está certo.

Então, indo direto ao ponto: existe um programa de software que faz exatamente isso? Ou estou fadado a escrever o meu próprio?


De um comentário do OP a uma das respostas:

Preciso medir quantos detalhes o meu scanner de transparência positiva realmente está obtendo antes de digitalizar uma coleção com cerca de 2000 slides antigos e considerá-lo digitalizado. Se eu configurá-lo para 19200 dpi óptico ou algo assim, e ele continuar produzindo imagens com detalhes perdidos, iguais a, digamos, uma câmera de 5 Mpix, então saberei que é ruim.

Esse é o problema real que a pergunta deseja resolver. Tudo acima é sobre uma solução percebida para esse problema raiz.

Sinus Mackowaty
fonte
Eu gosto da pergunta. Do ponto de vista dos fotógrafos, concordo com a resposta de StephenG, mas do ponto de vista de um engenheiro de TI, discordo. Mas então a questão pode ser melhor colocada no DSP SE: dsp.stackexchange.com
pLumo
Você pode
usar o seguinte
De um comentário do OP a uma das respostas: "Preciso medir a quantidade de detalhes que meu scanner de transparência positivo realmente está obtendo, antes de digitalizar uma coleção de cerca de 2000 slides antigos e considerá-lo digitalizado. Se eu o definir como óptico 19200 dpi ou algo assim, e continua produzindo imagens com detalhes perdidos, iguais a, digamos, uma câmera de 5 Mpix, então saberei que é ruim ". Este é o verdadeiro problema que precisa ser resolvido aqui. A maneira como essa pergunta é feita é um problema X → Y. Ou seja, o OP está perguntando como obter uma solução percebida, em vez de perguntar como resolver o problema raiz.
Michael C

Respostas:

4

Uma abordagem pode ser calcular a transformada bidimensional de Fourier da imagem e tentar decidir a frequência espacial acima da qual a transformada (ou, digamos, é poder) se torna ruído, isto é, não correlacionada e pequena. Nunca tentei algo assim, mas deve estar conectado de alguma forma com uma definição rigorosa de resolução?

Martin Smith
fonte
Acordado; uma FFT 2D ou uma transformada discreta de cosseno 2D (DCT) seria a abordagem mais direta para calcular a resolução efetiva de uma imagem. Com isso, você pode reconhecer quando a resolução passou a ser limitada independentemente de se ele foi causado pela qualidade do vidro, incorreto focando, difração de limitar, pesado compressão de imagem, etc.
por dgatwood
Era o que eu estava pensando também, apenas pensei que alguém já poderia ter construído uma ferramenta como essa. Isso deve responder efetivamente à pergunta "esta imagem faz uso total de sua resolução" e, após alguma calibração, deve torná-la comparável a outros tamanhos. Eu vou com este. Obrigado!
Sinus Mackowaty 30/08/19
5

Teoricamente, deve-se reduzir gradualmente as dimensões da imagem B até que seja detectada uma nitidez razoável (aproximando-a o máximo possível da imagem A, embora sem compará-las nesse momento) e, assim, derivar a contagem "verdadeira" de megapixels da imagem: a tamanho abaixo do qual as imagens estão começando a perder seus detalhes.

Você está começando a supor que a imagem B não tenha mais detalhes. Mas mesmo uma região completamente plana tem detalhes - é apenas que é plana.

A falta de detalhes ou alterações não indica falta de dados ou resolução de imagem válidos.

Esse valor pode ser facilmente usado para determinar a utilidade de uma foto - se eu fotografo um pouco fora de foco, ainda posso imprimi-lo em um tamanho menor e ninguém notará.

Isso não vai funcionar como você pensa.

As pessoas, na minha experiência, não se importam com os detalhes de uma imagem, tanto quanto acreiam com conteúdo emocional e / ou informativo. O que a imagem os faz sentir ou o que a imagem lhes diz ou ambos.

A menos que uma imagem esteja com um foco excepcionalmente ruim, geralmente é bom para algum propósito. Na minha experiência, as únicas pessoas que se preocupam com o foco perfeito são fotógrafos e editores de mídia (e os editores estão ficando menos exigentes hoje em dia).

Uma vez, tive uma foto (tecnicamente) ruim da filha de um parente que tinha desfoque de movimento, trepidação da câmera, foco ruim e iluminação ruim.

Ele está preso à parede de fotos há mais de uma década. Nenhum protesto por mim ou a oferta de filmar novamente nunca funcionou, BTW. Eles gostam dessa foto.

O valor de uma imagem não é definido por sua nitidez ou detalhes resolvidos, exceto em configurações comerciais muito particulares e mesmo não sendo a principal a prioridade. Nenhum editor de notícias se importará com o mínimo de detalhes que existem, por exemplo, na cena "exclusiva" de uma celebridade em férias ou, de fato, de alguma vítima do mais recente ultraje.

Ou poderia ajudar na avaliação da qualidade da lente ou do sensor -

Eles têm gráficos de resolução para isso. Esses são padrões fixos bem definidos e adequados à análise por computador. Dê uma olhada no site do DxOMark em algum momento.

Testar a resolução contra qualquer coisa, exceto um alvo bem definido e precisamente conhecido, é inútil.

se uma câmera de 24 Mpix não conseguir capturar uma imagem com mais de 8 Mpix "verdadeiras", algo não está certo.

Só porque um sensor não captura mais detalhes não significa que há algo errado além de suas expectativas.

Os detalhes capturados dependem de muitos fatores. Primeiro a existência de detalhes. Em seguida, as condições de disparo, a abertura e as características ópticas da lente. A iluminação, a velocidade do obturador, ISO e características de ruído. Limitações de difração.

A realidade é que a contagem de pixels tem muito menos na prática a ver com a quantidade de detalhes que você realmente obtém ao fotografar com muitos outros fatores que limitam o que é possível ou prático.

StephenG
fonte
3
Embora muitos de seus pontos sejam válidos, eles respondem apenas a casos específicos dos possíveis usos que mencionei. Gradientes simples e sem traços são obviamente incomensuráveis ​​usando os métodos que estou imaginando, mas são um caso marginal. Os gráficos de resolução não ajudarão com lentes danificadas ou mal calibradas. O "megapixel perceptivo" do DxOMark tem sido amplamente disputado. Claro, imagens levemente desfocadas às vezes são igualmente úteis, mas e as REALMENTE embaçadas? Eles podem ser transformados em miniaturas ou outras miniaturas, mas isso geralmente é determinado "a olho", embora possa ser calculado em algum grau.
Sinus Mackowaty 22/08/19
Se você deseja fazer isso particularmente, faça uma pesquisa na web por "medir a nitidez da imagem", que fornecerá alguns links para trabalhos de pesquisa sobre esse assunto. Se você não é matematicamente inclinado, sugiro pular isso. Você pode rastrear algum código-fonte aberto para isso, mas eu não estou ciente de nenhum.
StephenG
2
E, para acrescentar outro ponto ao argumento "superfícies planas": é exatamente isso que eu quero dizer, como um dos exemplos. Uma foto de uma superfície plana sem muitas bordas e detalhes poderia, tecnicamente, ser tirada com uma câmera muito mais pobre, sem nenhuma qualidade perdida. Em um caso prático específico, preciso medir a quantidade de detalhes que meu scanner de transparência positiva realmente está obtendo, antes de digitalizar uma coleção de cerca de 2000 slides antigos e considerá-lo digitalizado. Se eu configurá-lo para 19200 dpi óptico ou algo assim, e ele continuar produzindo imagens com detalhes perdidos, iguais a, digamos, uma câmera de 5 Mpix, então saberei que é ruim.
Sinus Mackowaty
1
Se eu descobrir que o scanner que tenho é uma porcaria e eu poderia fazer melhor comprando um diferente, vou perder muito tempo construindo a mecânica de automação, sejam eles quais forem. Eu prefiro não amaldiçoar-me sempre para estragar a única vez que eu vou dar a volta a atravessar com ele :)
Sinus Mackowaty
1
"(e os editores estão ficando menos exigentes hoje em dia)." Somente quando eles não estão pagando pela imagem.
Michael C
1

Depois de algumas experiências, acabei fazendo uma série de imagens em escala reduzida, voltando a subir e comparando com a original. Se houve uma diferença máxima significativa nos valores de pixel, a qualidade é considerada perdida. Se houver pouca perda, significa que a foto original não foi ótima para começar. Vou postar um trecho de PHP mais tarde.

Infelizmente, as imagens borradas direcionalmente ou borradas, mas com alguns artefatos nítidos no processamento, acabam sendo consideradas nítidas - e não acho que haja uma maneira de contornar isso.

Sinus Mackowaty
fonte
Que tipo de reamostragem você fez ao fazer o upscaling? Vizinho mais próximo, interpolação linear, interpolação quadrática, gaussiana, Dodgson ou algo mais?
Michael
@ Michael: IIRC, usei linear por uma questão de simplicidade.
Sinus Mackowaty 16/05/19