前提・実現したいこと
OpenCVで画像の表示をしようとしています。
発生している問題・エラーメッセージ
ofImage::loadで画像の読込。toCvでマット変換もしました。 これをinshowで表示しようとすると「ハンドルされていない例外」と出てしまいます。
該当のソースコード
C++
1void ofApp::setup(){ 2 Img1.load("sample.jpg"); //画像の読込 3 cv::Mat mat = ofxCv::toCv(Img1); //Mat変換 4 cv::cvtColor(mat, mat, CV_RGB2GRAY); 5 cv::imshow("image", mat); 6 cv::waitKey(0); 7}
試したこと
補足情報(FW/ツールのバージョンなど)
openFraeworks
ofxCv
ofxOpenCv
C++
> cv::cvtColor(mat, mat, CV_RGB2GRAY);
これを実施しない場合には問題は起きないのでしょうか?
見ていただいてありがとうございます。
コメントアウトして実行しても同じようにエラーがでます。
ということはその前の段階から異常があるということだと推測します.
画像の読み込み自体ができていないとか.
> Img1.load("sample.jpg"); //画像の読込
の Img1 の型がどのようなものなのか知りませんが,この load() メソッドの戻り値だとか,
あるいはこの Img1 の何らかのメソッドを用いるとかで,読込の正否をチェックできないのでしょうか?
Mat変換など関係なしに、Img.draw(0,0)だと表示できるのですが、、、
Img1の型はofImageです
ググった感じ,
ofImage なる型であれば load() の戻り値は bool であり,それを見ればチェックできそうです.
https://openframeworks.cc/documentation/graphics/ofImage/#show_load
> Returns: true if image loaded correctly.
ピクセル値が取得できるので、読込は出来ていました。その後のmatに値が何も入っていない状態でした。
あなたの回答
tips
プレビュー