Incorporando uma imagem a uma imagem para que fique invisível quando redimensionada

7

Estou tentando fazer algo parecido com esteganografia - ou seja, quero incorporar uma imagem em uma imagem para que, quando reduzida para 50%, a imagem incorporada desapareça e se torne uma cor lisa.

Esta é a minha tentativa .

Isso é usar Linear Dodge (Add)e Subtractmesclar modos no Photoshop, juntamente com as respectivas camadas mascaradas em colunas de pixels alternadas.

Quando reduzido para 50%, usando reamostragem bilinear ou bicúbica, gostaria que ela se tornasse apenas uma cor lisa. Em vez disso, está se tornando o seguinte:

insira a descrição da imagem aqui

Por quê? As cores resultantes de Adicionar e Subtrair não estão limitadas a 0 ou 255. Mas, como podemos ver, partes mais claras da imagem estão perdendo sua saturação em vermelho.

Como posso manipular as imagens - idealmente usando o Photoshop - para obter o resultado desejado?

Meu PSD está aqui e a imagem que usei está aqui .

Editar:

Esta é minha segunda tentativa:

E exatamente a mesma imagem, redimensionada pelo seu navegador:

Pelo menos no meu, o Adesapareceu. É isso que eu quero e quero que o Photoshop calcule as cores dos pixels, em vez de eu ter que fazê-lo manualmente.

Máx.
fonte
Scott tem uma ótima resposta, mas um comentário rápido: parece que você está assumindo que o redimensionamento em 50% remove todos os outros pixels, mas não é assim que o redimensionamento funciona com interpolação. Ele usa várias fórmulas para recalcular cada pixel com base nos pixels vizinhos.
DA01 23/06
@ DA01 Obrigado pela resposta. Acho que você cometeu o mesmo erro que Scott cometeu - amplie minha tentativa e verá que ela é composta de colunas de pixels mais claras e mais escuras . A teoria, que está correta, é que a reamostragem bilinear e bicúbica calculará a média dos pixels nas colunas escuras e claras para resultar em uma coluna vermelha pura. Isso pode ser visto redimensionando em 50% essa imagem usando reamostragem bilinear ou bicúbica.
Max
ah, isso é um pouco diferente. Dito isto, não consigo que a imagem 'A' de amostra desapareça em 50% no software que tenho em mãos (Chrome e Pixelmator). Eu tenho um palpite de que fazê-lo funcionar requer uma compreensão do algoritmo de reamostragem muito específico que o software em particular está usando ... o que não é necessariamente o mesmo que o outro software pode estar usando.
DA01 24/06
Você realmente quer entender a teoria do sinal disso? Quero dizer, um bom filtro de redução de amostragem seria capaz de manter a imagem intacta conforme o teorema da amostragem de Nyquist Shannon . O teorema prevê que um filtro pode ver sua carta de demonstração até cerca de 1/10 do tamanho. A faixa interna se tornará ruído ou se tornará resistente. O problema aqui é que existem vários filtros de downsampling que provavelmente podem prejudicar seu objetivo. Parece que você está indo bem, exceto que você não considera o Photoshop consciente de gama.
Joojaa
Ah, e aliás. meu navegador vê o A inteiro na imagem em escala. De qualquer forma, existem muitas maneiras de reduzir a amostra e a criação manual apenas funcionaria contra um desses filtros. Portanto, você ainda perderia se eles usassem outro método de redução de amostragem que você.
Joojaa

Respostas:

9

Eu não acho que o que você está tentando fazer seja possível devido à interpolação. Mas isso depende um pouco do uso pretendido da imagem e por que você deseja fazer isso.

Quase todos os aplicativos de varredura tentarão reter pixels contrastantes ao redimensionar, alguns melhores que outros. Mas nunca vi uma imagem rasterizada simplesmente remover uma seção que cubra mais de 3 ou 4 pixels da imagem inteira. Mesmo assim, os aplicativos tendem a reter 1 pixel se o contraste for alto o suficiente.

Perceba que os pixels, em geral, são quadrados e não linhas verticais. Sua máscara é semelhante à de um lenticular - você conhece aquelas impressões 3D em que uma delas se parece com a foto A e a outra com a foto B. A razão pela qual esse trabalho se deve à cobertura do prisma vertical e a um conjunto muito preciso de fatias de imagem embaixo.

É por isso que acho impossível usar pixels. O único método possível pode ser cercar cada pixel da imagem com 6 pixels de cores sólidas, na esperança de que, após a redução, a interpolação veja o pixel da imagem como desnecessário e o remova. Mas, novamente, isso é improvável porque a maioria dos aplicativos é inerentemente codificada para tentar reter pixels contrastantes.

Perceba que seus modos de mesclagem não afetam a imagem de maneira alguma depois que você a salva. Eles só funcionam no Photoshop para alterar a aparência. Você pode atingir o mesmo valor tonal de maneiras muito mais simples, como a simples redução da opacidade de um pixel branco.

Esta imagem é vermelha sólida com alguns pixels brancos de 30% no meio. Os pixels brancos são espaçados para permitir 6 pixels vermelhos ao redor de cada um deles. Isso equivale a 2 pixels vermelhos entre cada pixel branco.

píxeis

Claramente eles são visíveis.

Após uma redução de 50%:

redução

Você pode ver que eles ainda estão visíveis.

Reduzir os pixels brancos originais para uma opacidade de 20% dificulta a visualização antes da redução.

20 porcento

E depois da redução:

20 redução

Eles são quase igualmente visíveis.

Quando você aumenta a quantidade de pixels brancos (ainda com 20% de opacidade):

Maior

O original fica mais fácil de ver e após a redução ainda está lá.

20 vermelho

Claramente, nada disso está fazendo os pixels desaparecerem. Portanto, levaria alguma tentativa e erro para descobrir a distância e a opacidade de um grupo de pixels contrastantes antes que a interpolação os faça desaparecer. Esse seria o ponto ideal.

Na imagem abaixo, os pixels brancos estão definidos para 30% de opacidade. Cada pixel branco está a 8 pixels de qualquer outro pixel branco.

8 pixels

Após uma redução de 50%:

8 redução

Você precisa olhar muito para ver os pixels brancos (mas eles ainda não desapareceram). Isso pode funcionar dependendo do tamanho da imagem. Mas claramente quanto mais distantes os pixels contrastantes estiverem um do outro, melhor será o resultado.

Tomar a imagem maior acima, abri-la em um navegador e usar o navegador para reduzir a imagem fará com que os pixels brancos desapareçam efetivamente. Portanto, se você está procurando uma solução para um navegador, isso pode realmente funcionar. De fato, colocar a imagem maior em uma página html no tamanho original de 500x500pixels e, em seguida, usar html para definir o tamanho da imagem em 250x250pixels, parece remover também os pixels brancos. Veja uma demonstração disso aqui

Então, vamos testar com o retrato. Criei uma grade de pixels com um espaço de 8 pixels e usei isso para mascarar o rosto sobre o fundo vermelho:

cara

Os pixels estão tão distantes que a mensagem da imagem se perde.

Reduzir para 50% via Photoshop, na verdade, não faz nada além de diminuir tudo:

face @ 50%

Soltar a imagem em tamanho real em uma janela do navegador e reduzi-la através de Comando / Ctrl + menos para 50% obscurece um pouco mais o rosto. No entanto, algo ainda está claramente lá. (Esta é uma captura de tela da janela do navegador)

captura de tela @ 50%

E reduzir mais um passo na janela do navegador para 33% parece ocultar a maioria dos pixels brancos. se você examinar a imagem, ainda poderá detectar alguns pixels brancos, mas é improvável que a maioria dos espectadores os procure. (Esta também é uma captura de tela da janela do navegador):

Captura de tela @ 33%

Então ... o problema se torna a que distância você pode criar pixels e ainda transmitir uma imagem? E quanto tempo você deseja dedicar à separação de pixels individuais para criar essa imagem?

Scott
fonte
Obrigado pela sua resposta muito detalhada Scott. No entanto, há uma parte da minha tentativa que acho que você pode estar ignorando. Estou combinando colunas de pixels que são alternadamente mais claros e escuros que a cor vermelha. Portanto, não estou tentando fazer com que os pixels desapareçam - estou tentando fazer com que os pixels fiquem na média da cor vermelha. É claro que isso é teoricamente perfeitamente possível com a reamostragem do vizinho mais próximo e acredito que seja quase perfeitamente possível com a reamostragem bilinear / bicúbica.
Max
A questão é: como fazer o photoshop gerar as colunas mais claras e mais escuras para que, quando a média dos pixels, resulte em uma cor vermelha constante.
Max
Na verdade, Alec, isso, para mim, soa exatamente como você está tentando fazer os pixels desaparecerem. "média para a cor sólida" é apenas outra maneira de afirmar "desaparecer". E tudo o que eu postei é preciso, mesmo após o seu comentário. Os aplicativos são projetados inerentemente para reter pixels contrastantes. O vizinho mais próximo fará mais para reter o contraste do que a média para equilibrar. Isso simplesmente não vai acontecer. Eu adoraria ser provado errado embora.
24513 Scott Scott
E ... "a imagem incorporada desaparece e se torna uma cor lisa". Convém verificar novamente a pergunta, se não foi isso que você quis dizer. :)
Scott
"Isso simplesmente não vai acontecer." Veja esta imagem . O redimensionamento para 50% usando a reamostragem bilinear resulta em um quadrado perfeitamente vermelho, usando resultados bicúbicos em um quadrado vermelho com alguma leve sombra nas bordas do 'A'. Esse é exatamente o resultado que eu quero, mas gostaria de poder fazê-lo no Photoshop sem precisar calcular a cor de cada pixel manualmente.
Max