2017-07-08 6 views
-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() 

    ); 
    } 
} 

画像

enter image description here

エラー

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) 
+0

エラー出力が問題のコードと一致していないようです( 'imshow'は呼び出されません)。サンプルのパスにBasic Latinが含まれているように見えますが、実際問題を再現していますか? |あなたがそれを解決した場合は、答えに書き込むか、単に質問を削除してください。 –

+0

@DanMašek、元のファイルパスは多くのUnicode文字で "E:/ℤIMAGEℂ/ℤtestℂ.png"のように見えますが、Unicode文字でエラーが発生したことを認識していませんでしたので、これはより簡単なコードで、パスを "E:/IMAGE/test.png"に変更しましたが、質問の誤解を招く結果につながります。 imshowは機能を示す純粋なイメージですが、私はコンソールテキストでその情報を削除することを忘れてしまいます。私はこのコードのあなたの結果から聞きたいと思います。 –

+0

問題を解決した場合は、自分自身で質問に回答するか(他人を助けることができると思われる場合)、またはそれを削除してください。 – leonbloy

答えて

0
画像へ

パスがUnicode文字が含まれています:

はWHY &を解決しました。

誰かがあなたの問題を解決したら、それを削除するか、答えてください。

Unicodeパスからイメージを読み込もうとすると、エラーが発生し、関連する解決策が表示されないので、これを読むことができます。

OpenCVは、悲しいことに、ユニコードファイルのパスで盗まれています。それはOpenCVの問題ですが、私のものです。