VS2017 + OpenCV también ser pintado como una novia ???? !!!!!!

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:
Aquí Insertar imagen Descripción

preparación premisa

  1. instalación de VS2017 , Tutorial: vs2017 guía de instalación ;
  2. OPENCV3.4.1 instalación , Tutorial: vs2017 instalado OpenCV tutorial ;
  3. Preparar un objetivo para un grupo de imágenes y de mosaico imágenes;

pensamiento

  1. Esos cambios del tamaño de un montón de fotos preparada de antemano a un tamaño de mosaico.
  2. Se calcula el promedio de color de cada imagen.
  3. 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.
  4. 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.
  5. 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:

Aquí Insertar imagen Descripción
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:

Aquí Insertar imagen Descripción
Este es el cálculo de la fuente de color medio

Código de tres ideas:

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
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:

Aquí Insertar imagen Descripción
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:
Aquí Insertar imagen Descripció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.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Los resultados operativos

Original (Take novia cortó hhhhh):
Aquí Insertar imagen Descripción
no agregue representaciones fusión de imágenes:

Aquí Insertar imagen Descripción
La fusión de imágenes además de las representaciones:
Aquí Insertar imagen Descripción

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 ~

Publicado 53 artículos originales · ganado elogios 5 · Vistas 2210

Supongo que te gusta

Origin blog.csdn.net/qq_37668436/article/details/103980091
Recomendado
Clasificación