前回はデジタル画像がどのように表現されるのか書きました↓eveydayanime-9rakura.hatenablog.comこれを踏まえて、今回は画素読み込みと画像表示について書いていこうと思います。画像を読み込んで何らかの処理を施して結果を表示する...基本ではありますが、画像処理を行う上で一番扱うことが多くなるものだと思います。画像の読み込みMat型の宣言C++画像の読み込みC++画像の表示ウィンドウ画像の表示C++キー入力待ちC++ソースプログラムc++おわりにOpenCVの導入いついてはQitaにたくさん記事があるので省くこととします。需要があるようなら書きますのでコメントにて教えていただければありがたいです。OpenCVが4系になり、引数等に使われる定数が変更されているのですが、その辺りの記述がまだあまり出回っていないようなので、(公式のドキュメントを読めばわかるのであまり必要ないかもですが......)今後その辺りについては書いていくかもしれないです。備忘録としての意味も含め、Pythonでも記述とC++での記述どちらも書いていこうと思います。前回も書きましたが、画像はプログラム上ではOpenCVに用意されている行列を管理する構造体、Matクラスを用いて扱います。画像の高さ(rows)と幅(cols)、チャンネル数を保有しているということだけ知っていれば良いです。(つまりメンバ関数によってその値を得られますし、宣言時に指定もできます)C++を知らないを人にとっては、まずcv::って何?と思うかもしれませんが、これは名前空間を表します。単純にこれはOpenCVのクラスや関数だよと表すものです。標準C++ライブラリの場合はstd::とついたりします。cv;と記述しておくといちいち書かなくても良いです。(ただし複数人で扱うプログラムに関しては、名前空間は記述するのがベターです)画像の読み込み画像の読み込みはcv::imread関数を使います。引数として読み込む画像ファイルパスを渡します。cv::imread(FILENAME);とします。(-1);}と言う記述をし、チェックを行うようにしておくと良いです。画像の表示ウィンドウ画像を表示するためにはその画像を収めるウィンドウが必要です。写真を飾るための額縁のようなものと思ってもらえれば良いです。以前は、先にウィンドウを宣言し、画像を表示する必要がありましたが、現在必要なくなりました。言うものがあると言うことだけ覚えておいてもらえれば良いです。今はマクロでウィンドウの名前だけを宣言しておいて、表示するときに使うと言うのが主流だと思います。画像の表示はcv::imshow関数を使います。引数としてウィンドウ名、第二引数として表示する画像の変数を渡します。src_img);とします。キー入力待ち画像を表示させたいとき、待ち状態にしないとただプログラムを走らせて終わり、となってしまい結果を見ることができません。ここでcv::WaitKey関数を用います。C++cv::WaitKey();これを画像表示の後に記述しておくことでウィンドウに描画された画像が表示されていることを確認できます。ウィンドウを読み込むたびにcv::WaitKey();を記述し読み込む必要があります。ソースプログラム全体の流れを踏まえたソースプログラムを記載しておきます。0;}おわりに薄い内容となってしまいましたが、今回はここまでとします。簡単な内容となってしまいましたが、画像処理を行う際に毎回使うのでしっかり覚えておく必要があります。一連の流れを含めたプログラムを環境構築をした自身のエディタで試してもらうと理解が深まると思います。次回は画素操作とグレースケール化について書きたいと思います。最後まで目を通してくださりありがとございました。次からはMarkdownで書いてソースを見やすくしたいですね...。OpenCVに関しての記事をいくつか書いてきましたが、今回は単純...2019-10-07【OpenCV】デジタル画像の基本〜画像はどう表現されるのかこんにちは。今回は、プログラム上ではどのように...2019-10-07【OpenCV】画像処理で何ができてどう使うのかこんにちは。10はてなブログをはじめよう!yamachi_9rakuraさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。