SOLVED & POURQUOI:Java avec OpenCV n'a pas pu lire l'image PNG
chemin à l'image contient le caractère Unicode, je dois dire que c'est un bug.
ORIGINAL POST:
Je suis nouveau à OpenCV et juste utiliser Java avec OpenCV 3.2.0, 3.1.0 et 2.4.3 de lire cette image sans succès, à savoir, pas de largeur ou hauteur peut être lu, bien que mon but est de trouver les coins de harris, et d'utiliser une autre image est sans ce problème.
Code:
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
public class Test
{
public static void main (String []args)
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat img_object = Highgui.imread("E:/ℤIMAGEℂ/ℤtestℂ.png");
System.out.println(
"img_object.width() = " + img_object.width()
+ ",\n img_object.height() = " + img_object.height()
+ ",\n img_object.depth() = " + img_object.depth()
+ ",\n img_object.channels() = " + img_object.channels()
+ ",\n img_object.total() = " + img_object.total()
+ ",\n img_object.type() = " + img_object.type()
);
}
}
image:
erreur:
img_object.width() = 0,
img_object.height() = 0,
img_object.depth() = 0,
img_object.channels() = 1,
img_object.total() = 0,
img_object.type() = 0
libpng warning: Image width is zero in IHDR
libpng warning: Image height is zero in IHDR
libpng error: Invalid IHDR data
OpenCV Error: Assertion failed (code) in cv::imencode, file ..\..\..\..\opencv\modules\highgui\src\loadsave.cpp, line 430
Exception in thread "main" CvException [org.opencv.core.CvException: cv::Exception: ..\..\..\..\opencv\modules\highgui\src\loadsave.cpp:430: error: (-215) code in function cv::imencode
]
at org.opencv.highgui.Highgui.imencode_1(Native Method)
at org.opencv.highgui.Highgui.imencode(Highgui.java:243)
at Imshow.imshow(Imshow.java:29)
at test.main(Test.java:21)
La sortie d'erreur ne semble pas correspondre au code de la question (il n'y a pas d'appel à 'imshow'). Le chemin dans l'échantillon semble contenir le latin de base - est-ce que cela reproduit vraiment le problème? | Si vous l'avez résolu, écrivez-le dans une réponse ou supprimez simplement la question. –
@ DanMašek, j'oublie de dire, le chemin de fichier original ressemble à ceci: "E: /ℤIMAGEℂ/ℤtestℂ.png", avec de nombreux caractères Unicode, et je n'ai pas réalisé les caractères Unicode a entraîné l'erreur, alors je voulais demander ceci par un code plus simple et ont modifié le chemin vers "E: /IMAGE/test.png", mais conduisant à un effet trompeur de l'interrogation. Imshow est une pure fonction d'affichage d'image, j'ai oublié de supprimer cette information dans les textes de la console. J'espère avoir des nouvelles de votre résultat de ce code. –
Si vous avez résolu le problème, alors répondez à la question vous-même (si vous pensez que cela peut aider quelqu'un d'autre) ou supprimez-le – leonbloy