OpenCV imwrite() pas d'enregistrement d'image
Je suis en train d'enregistrer une image à partir d'OpenCV sur mon mac et j'utilise le code suivant et jusqu'à présent il n'a pas été de travail.
cv::imwrite("/Users/nickporter/Desktop/Gray_Image.jpg", cvImage);
Quelqu'un peut voir pourquoi cela ne pourrait pas sauver?
- Que signifie "pas de travail" signifie pour vous? la construction d'erreur? erreur d'exécution? ou vous ne pourriez pas trouver l'image stockée? vous pouvez soit: vérifier la valeur de retour de cette fonction, ou l'affichage de la
cvImage
pour voir si l'image est correcte. - Quand je dis pas de travail, le code compile bien, mais je ne vois pas l'image enregistrée jusqu'à ma destination.
- quelle est la valeur de retour de cet appel? pourrait le
cvImage
être affiché parimshow
? - J'ai essayé
imshow
et obtenir une longue exception. Découvrez ma question ici: answers.opencv.org/question/29895/imshow-throwing-exception-osx - il semble que votre bibliothèque a un problème. désolé que je ne sais pas comment le résoudre dans MAC. qu'en est
cvShowImage
? vous pourriez écrire un simple programme en c pour testerload
etcvShowImage
.
Vous devez vous connecter pour publier un commentaire.
OpenCV ne avoir des problèmes d'économie à
JPG
images parfois, essayez d'enregistrer àBMP
à la place:Aussi, avant cela, assurez-vous de l'image
cvImage
est valide. Vous pouvez le vérifier en montrant l'image de la première:J'ai rencontré le même problème et une des raisons possibles est que le dossier cible pour placer votre image. Supposons que vous souhaitez copier A.jpg le dossier
"C:\\folder1\\folder2\\"
, mais en fait, quandfolder2
n'existe pas, la copie ne peut être couronnée de succès(C'est de mon test réel, pas d'annonce officielle). Et j'ai résolu ce problème en vérifiant si le dossier existe et créer un dossier s'il n'existe pas. Voici un code peut-il aider à l'aide de c++ & boost::filesystem. Peut-il les aider.J'ai juste eu un problème similaire, le chargement dans un format jpg et en essayant de les enregistrer en format jpg. Ce code et il semble être bon maintenant.
Et vous avez besoin d'inclure le paramètre dans votre writefile.
Je suggère également de vérifier les autorisations de dossier. Opencv tranquillement les retours de imwrite sans aucune exception, même si le dossier de sortie n'a pas les permissions d'écriture.
La fonction suivante peut être déposé dans votre code pour prendre en charge l'écriture des images jpg à des fins de débogage.
Vous avez juste besoin de passer un
image
et unfilename
pour elle. Dans la fonction, spécifiez un chemin d'accès que vous souhaitez écrire & la permission de le faire avec.OpenCV 3.2 imwrite() semble avoir un problème pour écrire le fichier jpg avec Windows en mode Debug. J'utilise de cette façon, au lieu de imwrite().