2017-02-14 27 views
0

OpenCVライブラリを使用してQt Creatorで画像を表示する際に問題があります。アサーションが失敗しました(size.width> 0 && size.height> 0)Qt with OpenCV

ボタンを押すと画像を表示するプログラムがあります。私はそれを実行すると、それは私

OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file C:\builds\2_4_PackSlave-win64-vc12-shared\opencv\modules\highgui\src\window.cpp, line 261 The program has unexpectedly finished.

using namespace cv; 

void MainWindow::on_start_clicked() 
{ 

    Mat src = imread("C:/Users/Amr/Documents/untitled7/layout.jpeg",CV_WINDOW_AUTOSIZE); 
    namedWindow("src",CV_WINDOW_AUTOSIZE); 
    imshow("src",src); 
    waitKey(0); 
    destroyWindow("src"); 
} 

を与えますが、私はこのプログラムをしようとすると、それは私が問題がディレクトリであることを感じて

using namespace cv; 

void MainWindow::on_start_clicked() 
{ 

    Mat src (500,500,CV_8UC3,Scalar(255,0,0)); 
    namedWindow("src",CV_WINDOW_AUTOSIZE); 
    imshow("src",src); 
    waitKey(0); 
    destroyWindow("src"); 
} 

非常に良い作品が、私は知りませんそれは何ですか。 /\または//に変更しようとしましたが、まだこのエラーが発生しています。

+0

返された値が 'src.data!= NULL'と比較することで読み込みが正しいかどうかをテストします。 –

+2

[Assertion failed(size.width> 0 && size.height> 0)の重複の可能性があります](http://stackoverflow.com/questions/20821269/assertion-failed-size-width0-size-height0) –

+0

私は 'それは愚か者だとは思わない。ここでは、エラーが何を意味するのかはっきりしています。問題は、現在のコード行ではうまくいかない理由です。ちょうど私の2セント... – Miki

答えて

2

パスが正しいと仮定すると、CV_WINDOW_AUTOSIZEを使用することは意味がありません。 IMREAD_XXX使用します

Mat src = imread("C:/Users/Amr/Documents/untitled7/layout.jpeg", IMREAD_COLOR); 

はしかし、二重のパスをチェックして、「image.jpeg」は「image.jpg」とは異なることを覚えておいてください。そして...あなたは "untitled7"が正しいと確信していますか?

+0

CV_WINDOW_AUTOSIZEの代わりにIMREAD_COLORを試しましたが、まだこのエラーが発生しています。コピーは過去のパスがあるので、正しいです。 – Amr

+0

(stc.data)を使用してイメージのロードをテストしました。私は今それが正常に読み込まれていないが知っているが、なぜわからない – Amr

+1

私の答えをお読みください? IMREAD_COLORを使用して実際の内線番号を確認すると、untitled7は正しく見えません。そして...画像は存在しますか? – Miki

関連する問題