Estoy usando OpenCV 3.0.0 y Python 3.4.3 para procesar una gran imagen RGB (107162,79553,3). Mientras yo estoy tratando de cambiar su tamaño utilizando el siguiente código:
import cv2
image = cv2.resize(img, (0,0), fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
Tuve este mensaje de error acerca :
«cv2.error: C:\opencv-3.0.0\source\modules\imgproc\src\imgwarp.cpp:3208: error: (-215) ssize.área() > 0 en función de cv::cambiar el tamaño de»
Estoy seguro de que es el contenido de la imagen en la imagen de la matriz porque puedo guardar en pequeños azulejos en formato jpg. Cuando intento cambiar el tamaño de una pequeña parte de la imagen, no hay problema, y termino con correctamente la imagen redimensionada. (Tomando un lugar gran parte (50000,50000,3) todavía no funciona, pero funciona en un (10000,10000,3) fragmento)
Me pregunto lo que podría causar este problema y cómo puedo solucionar esto?
Gracias
- adivinar: integer range es de +/- 2.147.483.647 mientras cols x filas ist 8.525.058.586 en su ejemplo.Así que PROBABLEMENTE hay un desbordamiento de entero dentro de cv::cambio de tamaño. Usted podría probar esto por pruebas de imagen tamaños alrededor cols x filas == 2.147.483.647
- Hey Micka, tienes razón !! Funciona en (46340,46340,3), pero no (46341,46341,3). ¿Que significa el cambio de int a int64 debe resolver el problema?
- No sé dónde en el interior de cv::cambiar el tamaño del área es calculada. Yo creo que hay que tener una mirada en opencv cambiar el tamaño de fuente de código de…
- Donde puedo encontrar este archivo en macos, no encontré ningún archivo que tiene un nombre similar ?
Así resulta que el problema viene de una línea en
modules\imgproc\src\imgwarp.cpp
:Cuando el producto de filas y columnas de la imagen cambiar de tamaño es mayor que 2^31, ssize.área() el resultado es un número negativo. Esto parece ser un error en OpenCV y espero que será corregido en la próxima versión. Una solución temporal es la construcción de OpenCV con esta línea de comentarios. Aunque no es ideal, a mí me funciona.
Y hace poco me enteré de que la anterior se aplica sólo a la imagen, cuyo ancho es mayor que la altura. Para las imágenes con altura mayor que la anchura, es la siguiente línea que causa el error:
Por lo que este tiene que ser un comentario así.
Resulta para mí este error en realidad estaba diciendo la verdad – yo estaba tratando de cambiar el tamaño de un valor Nulo de la imagen, que generalmente era el «último» de la estructura de un archivo de vídeo, por lo que la afirmación es válida.
Ahora tengo que realizar un paso adicional antes de intentar la operación de cambio de tamaño, que es hacer la afirmación de mí mismo:
Ahora no veo el error.
Sé que esto es un hilo muy antiguo, pero yo tenía el mismo problema que era debido espacios en el nombre de las imágenes.
por ejemplo,
extrañamente, mediante la eliminación de los espacios de la función funcionado bien.
También prestar atención al tipo de objeto de su numpy matriz, la conversión de uso de
.astype('uint8')
resuelto el problema para mí.Para mí el siguiente trabajo-alrededor de trabajado:
Aquí el código:
Estoy teniendo OpenCV versión 3.4.3 en MacOS.
Yo estaba recibiendo el mismo error que el anterior.
He cambiado mi código de
a
Ahora su trabajo bien para mí.
Este tipo de error también se lleva a cabo porque el tamaño es incapaz de obtener la imagen en simple
el directorio de la imagen puede estar equivocado.En mi caso, yo a la izquierda de la barra diagonal durante proporcionar la ubicación del archivo y este error tuvo lugar después de poner la barra problema fue resuelto.
Resulta que yo tenía una .archivo csv al final de la carpeta de la que estaba leyendo todas las imágenes.
Una vez que he eliminado funcionó bien
Asegurarse de que todas las imágenes y que no tenga cualquier otro tipo de archivo
En mi caso hice un mal modificación en la imagen.
Yo era capaz de encontrar el problema de la comprobación de la forma de la imagen.
Yo estaba trabajando con 3 archivos: La secuencia de comandos de python, la imagen y el modelo de aprendizaje.
Todo funcionaba cuando me mudé estos 3 archivos en su propia carpeta en lugar de en el directorio con el resto de secuencias de comandos de python.
Manualmente, puede colocar una marca de verificación en el código. Como este –
Tuve el mismo error. Cambio de tamaño de las imágenes resuelto el problema. Sin embargo, he utilizado las herramientas en línea para cambiar el tamaño de las imágenes debido a que el uso de la almohada para cambiar el tamaño de ellos no se soluciona mi problema.