Trato de escribir un algoritmo que descodifica las imágenes que fueron antes revueltos por la mezcla de pequeños bloques:
Mi idea es que en la parte inferior de la imagen hay más "fuerte" de las esquinas en comparación a la imagen de arriba. Por lo tanto trato de minimizar el funcional:
energy(image)
{
score = 0;
for(pixels inside the image)
score = score + abs(pixel sum of sourrounding 4 pixels - 4 value of internal pixel)
}
La energía debe por lo tanto ser alta si hay muchos bordes duros y bajos de la imagen original. En una prueba me encontré con que la imagen original tiene la partitura $845.812$, mientras que el revueltos uno tiene la partitura $1.085.521$ por lo que el enfoque podría ser vale la pena intentarlo.
Mi pregunta es si hay un método eficiente para minimizar la función de la energía ahora sin probar todas las $n!$ permutaciones (demasiados). O un enfoque diferente no he venido para arriba con.