J'essaie de lire un fichier png en utilisant opencv2, j'obtiens l'erreur suivante.C++: conflit libpng sur opencv
libpng warning: Application built with libpng-1.2.53 but running with 1.6.27
OpenCV Error: Assertion failed (dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0)) in resize, file /home/dpk/Desktop/opencv/opencv/modules/imgproc/src/imgwarp.cpp, line 3484
J'ai sur mon système libpng 1.6.27
. Opencv a été construit en utilisant la commande cmake -D BUILD_PNG=OFF /home/dpk/Desktop/opencv
, pour éviter les conflits entre la bibliothèque d'opencv et celle de mon système.
Je compilez le programme qui a besoin de lire comme ci-dessous .png
g++ preProcess.cpp -I/usr/local/include/libpng16 `pkg-config opencv --cflags --libs` -o preProcess
La sortie de ldd
sur le binaire donne ce qui suit pour libpng
libpng16.so.16 => /usr/local/lib/libpng16.so.16
Comment puis-je corriger cette erreur?
Quand je regarde le répertoire 3rdparty dans le repo, même en 2010 il y avait une version de LibPNG plus récente que 1.2.53, donc il semblerait que ce n'est pas d'où cela vient. Avez-vous une autre copie d'OpenCV installée sur votre système, qu'elle utilise accidentellement? Est-ce que la sortie de 'pkg-config opencv --cflags --libs' a un sens? –