C++勉強しつつ、久々に画像処理で遊ぼうかなと思い、OpenCVを導入して画像を表示させようとしたときに、エラーが出てしまって表示が出来ない・・・。

パスは合っているのに表示すら出来ないとは何事か!と思い、色々調べて解決したので、それをここに残しておきます。

imreadで読み込めない!

ただ読み込んで表示するだけのコードを作成しました。

これでデバッグしてみると画像のようなエラーが出てしまいます。

調べてみるとファイルパスが合っていないということなので、色々試していたのですが解決せず・・・。

#include <iostream>
#include <opencv2/opencv.hpp>

int main() {
	cv::Mat img;

	img = cv::imread("sizuru.png");
	

	cv::imshow("title", img);
	cv::waitKey(0);

	return 0;
}


確かに画像が読み込めていないようです。依存とかその辺が間違っているのかな?と思ったのですが、その通りでした。

opencv_world○○○のlibは1つだけで良い

opencvをVisualStudioに導入するときに、ダウンロードしてCドライブ直下に置いたのですが、そこのlibディレクトリにあるlib拡張子を全部依存ファイルに含めていたのが原因でした。

大体インストールすると、opencv_world○○○.libとopencv_world○○○d.libが手に入るのですが、この内片方だけを依存ファイルに書いておけば良かった、ということ。


1つ削除したところ、下記のように表示することが出来ました!

危うく導入部分で躓くところだった・・・。

これで画像処理で遊びつつC++で勉強できる・・・。