VS2017 + OpenCV toma de montaje de la foto
breve introducción
Montaje de las imágenes, comúnmente referido como un mapa de mosaico. La figura muchos pequeños empalmado en una imagen más grande. Después de la propaganda comercial, sino también para promover su propaganda puede ser la forma en que muchos socios, popular. OPENCV programas tutoriales utilizan para completar la producción del mapa de mosaico. El efecto es como sigue:
preparación premisa
- instalación de VS2017 , Tutorial: vs2017 guía de instalación ;
- OPENCV3.4.1 instalación , Tutorial: vs2017 instalado OpenCV tutorial ;
- Preparar un objetivo para un grupo de imágenes y de mosaico imágenes;
pensamiento
- Esos cambios del tamaño de un montón de fotos preparada de antemano a un tamaño de mosaico.
- Se calcula el promedio de color de cada imagen.
- Modificar la longitud y anchura de la imagen de destino para que sea un múltiplo entero de la longitud y anchura son el tamaño de mosaico.
- A unidades de tamaño de mosaico atraviesan la imagen de destino también calcula el color medio de la región, y a continuación, la preparación por adelantado media para la sustitución de la imagen de mosaico mediante la comparación de la diferencia entre la imagen de destino reemplazado con la media más cercano.
- la sustitución completa con la imagen bien y comenzó a preparar la imagen más objetiva como una fusión, el efecto es más realista.
análisis de código
Pensando un código:
Esta parte se utiliza principalmente para modificar el tamaño de la imagen la sustitución de, y calcula el color medio de cada imagen, y definir un mapa de clase, utilizando la media como una imagen un reemplazo para la parte posterior clave, valor ranura como un camino, preparar
Pensando segundo código:
Este es el cálculo de la fuente de color medio
Código de tres ideas:
Drenaje de un cuadro del tamaño del objetivo es ser un cambio pequeño, por lo que puede ser reemplazado por un número entero de mapa mosaico hecho.
La Figura II es una modificación del tamaño de la almohadilla basada en la imagen de origen, el parámetro xy se basa en la imagen de entrada (x, y) tomada en el ancho de punto, el tamaño de la altura de la imagen a la derecha.
Código cuatro ideas:
for (int i = 0; i < src.rows / height; i++)
{
for (int j = 0; j < src.cols / width; j++)
{
static int n = 0;
float error = 0;
float lasterror = 10000000;
string path = "";
Mat tempPieces = spliteTest(src, j * width, i * height, width, height);
float ave = cal_mean_stddev(tempPieces);
map<int, string>::iterator strmap_iter = strMap.begin();
for (; strmap_iter != strMap.end(); strmap_iter++)
{
if (fabsf(ave - strmap_iter->first) < 1)
{
path = strmap_iter->second;
break;
}
error = fabsf(ave - strmap_iter->first);
if (error < lasterror)
{
lasterror = error;
path = strmap_iter->second;
}
//cout << strmap_iter->first << ' ' << strmap_iter->second << endl;
}
Mat tempimg = imread(path);
mergeTest(src, tempimg, j * width, i * height, width, height);
}
}
Esto es parte de un algoritmo simple, en unidades de tamaño de mosaico que atraviesan todo el mapa de destino, y luego calcula el color medio de cada parte, y luego se compara con nuestro mapa de la clase anterior la tecla almacena, a continuación, tomar el color media similar para reemplazar.
Código cinco ideas:
Por último, los resultados del mapa de imagen original y hacer una fusión, tal propósito es que a veces estamos listos para reemplazar el número de la imagen es de color demasiado pequeño o demasiado simple, que puede causar un poco de color así que no son representaciones preparadas por diferencia de goles que el mapa grande. La fusión con el alfa y beta es la relación de estos dos coeficientes de la matriz de la estera de tres canales multiplicado por un factor de escala. principios específicos Baidu addWeighted pueden funcionar fuente.
instrucciones de ingeniería
** Por último, a medida que preparamos la fuente de todo el proyecto, hacer una simple explicación a continuación:
sólo tenemos que configurar bajo el contenido del código puede ser.
No demasiado explicación aquí, puedo mirar a la ruta del archivo.
Los resultados operativos
Original (Take novia cortó hhhhh):
no agregue representaciones fusión de imágenes:
La fusión de imágenes además de las representaciones:
dirección del proyecto
Enlace: http: //t.cn/Ais8oaxV código de extracción: vs2017 y tienen instalación de OpenCV antes de su uso 4hqm. Haga doble clic para abrir el .sln vs proyecto, a continuación, de acuerdo con el indicador para cambiar el código de inicialización en el interior parte de ella
resumen
De hecho, hay bastantes buenas ideas, escribir a continuación. . . El proceso más tortuoso y col estera fila clases. . . Las filas y columnas no pueden decir, yo estaba servido, siempre que atraviesan la longitud y la anchura del más allá de la imagen, a continuación, todo tipo de anomalías, esto puede ser contra el encanto de la misma.
disfrutar de ella ~