-1
を読み取ることができませんでしたが、& WHYを解決しよう:画像へOpenCVのとJavaは、PNG画像
パスはUnicode文字が含まれている、私はそれはバグだと言っています。
ORIGINAL POST:
私はOpenCVのに新しいですし、ちょうどOpenCVの3.2.0、3.1.0でのJavaの使用、および2.4.3は、任意の成功、すなわち、ノー幅または高させずに、この画像を読み取ります私の目的は、ハリスコーナーを見つけることですが、他のイメージを使用することはこの問題なしですが、読むことができます。
コード:
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()
);
}
}
画像:
エラー:
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)
エラー出力が問題のコードと一致していないようです( 'imshow'は呼び出されません)。サンプルのパスにBasic Latinが含まれているように見えますが、実際問題を再現していますか? |あなたがそれを解決した場合は、答えに書き込むか、単に質問を削除してください。 –
@DanMašek、元のファイルパスは多くのUnicode文字で "E:/ℤIMAGEℂ/ℤtestℂ.png"のように見えますが、Unicode文字でエラーが発生したことを認識していませんでしたので、これはより簡単なコードで、パスを "E:/IMAGE/test.png"に変更しましたが、質問の誤解を招く結果につながります。 imshowは機能を示す純粋なイメージですが、私はコンソールテキストでその情報を削除することを忘れてしまいます。私はこのコードのあなたの結果から聞きたいと思います。 –
問題を解決した場合は、自分自身で質問に回答するか(他人を助けることができると思われる場合)、またはそれを削除してください。 – leonbloy