Recuerda que en la informática un error casi siempere suele tener diversas resoluciones, por lo tanto nosotros te mostraremos lo más óptimo y mejor.
Solución:
El vecino más cercano será lo más rápido posible, pero perderá información sustancial al cambiar el tamaño.
La interpolación lineal es menos rápida, pero no provocará pérdida de información a no ser que estás reduciendo la imagen (que lo eres).
La interpolación cúbica (probablemente en realidad “Bicúbica”) utiliza una de las muchas fórmulas posibles que incorporan varios píxeles vecinos. Esto es mucho mejor para reducir imágenes, pero aún está limitado en cuanto a la cantidad de reducción que puede hacer sin pérdida de información. Dependiendo del algoritmo, probablemente puedas reducir tus imágenes en un 50% o 75%. La principal desventaja de este enfoque es que es mucho más lento.
No estoy seguro de qué es “área”, en realidad puede ser “Bicubic”. Con toda probabilidad, esta configuración le dará el mejor resultado (en términos de pérdida/aparición de información), pero a costa del mayor tiempo de procesamiento.
Actualizar: este enlace brinda más detalles (incluido un quinto tipo no incluido en su lista):
http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html?highlight=resize#resize
Los algoritmos son: (las descripciones son de la documentación de OpenCV)
- INTER_NEAREST – una interpolación de vecino más cercano
- INTER_LINEAR – una interpolación bilineal (usada por defecto)
- INTER_AREA – remuestreo usando relación de área de píxeles. Puede ser un método preferido para la destrucción de imágenes, ya que proporciona resultados sin muaré. Pero cuando se amplía la imagen, es similar al método INTER_NEAREST.
- INTER_CUBIC: una interpolación bicúbica sobre un vecindario de 4×4 píxeles
- INTER_LANCZOS4: una interpolación de Lanczos sobre un vecindario de 8×8 píxeles
Si desea más velocidad, use el método Vecino más cercano.
Si desea conservar la calidad de la imagen después de la reducción de resolución, puede considerar usar la interpolación basada en INTER_AREA, pero nuevamente, depende del contenido de la imagen.
Puede encontrar un análisis detallado de la comparación de velocidad aquí
A continuación se muestra la comparación de velocidad en una imagen de 400*400 px tomada del enlace de arriba
El método de interpolación a usar depende de lo que esté tratando de lograr:
CV_INTER_LINEAR o CV_INTER_CUBIC aplique un filtro de paso bajo (promedio) para lograr un compromiso entre la calidad visual y la eliminación de bordes (los filtros de paso bajo tienden a eliminar los bordes para reducir el alias en las imágenes). Entre estos dos te recomiendo CV_INTER_CUBIC.
CV_INTER_NN El método en realidad es el vecino más cercano, es el método más básico y obtendrá bordes más nítidos (no se aplicará ningún filtro de paso bajo). Sin embargo, este método simplemente es como “acercar” la imagen, sin mejora visual.
Reseñas y puntuaciones
Si te mola el tema, tienes la libertad de dejar una sección acerca de qué le añadirías a este tutorial.