Saltar al contenido

OpenCV imwrite () no guarda la imagen

Ten en cuenta que en la informática un problema casi siempre tiene diferentes soluciones, de igual modo aquí te compartimos la mejor y más eficiente.

Solución:

OpenCV tiene problemas para guardar en JPG imágenes a veces, intente guardar en BMP en lugar de:

cv::imwrite("/Users/nickporter/Desktop/Gray_Image.bmp", cvImage);

Además, antes de esto, asegúrese de que la imagen cvImage es válida. Puedes comprobarlo mostrando primero la imagen:

namedWindow("image", WINDOW_AUTOSIZE);
imshow("image", cvImage);
waitKey(30);

Encontré el mismo problema y una posible razón es que la carpeta de destino para colocar su imagen. Supongamos que desea copiar A.jpg a la carpeta "C:\folder1\folder2\"pero de hecho cuando folder2 no existe, la copia no puede tener éxito (es de mi prueba real, no del anuncio oficial). Y resolví este problema al verificar si la carpeta existe y crear una carpeta si no existe. Aquí hay un código que puede ayudar a usar c ++ y boost::filesystem. Que ayude

#include   
#include 
std::string str_target="C:\folder1\folder2\img.jpg";

boost::filesystem::path path_target(str_target);
boost::filesystem::path path_folder=path_target.parent_path();//extract   folder
if(!boost::filesystem::exists(path_folder)) //create folder if it doesn't exist

  boost::filesystem::create_directory(path_folder);
  
cv::imwrite(str_target,input_img);

También sugiero verificar los permisos de la carpeta. Opencv regresa silenciosamente de imwrite sin ninguna excepción, incluso si la carpeta de salida no tiene permisos de escritura.

Si aceptas, tienes la habilidad dejar un post acerca de qué te ha parecido este enunciado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *