OpenCV チュートリアル(OpenCV 入門)

OpenCV チュートリアル(OpenCV 入門)プログラミング
ゆうすけ
ゆうすけ

OpenCV を学ぶためのチュートリアルが欲しいです。

資格マフィア
資格マフィア

OpenCV の主要な関数を処理の流れとともに解説するぞ。

 

✔️ 本記事のテーマ

 OpenCV チュートリアル


✔️ 読者さんへの前置きメッセージ

本記事は
「OpenCV の主要な関数と処理の流れ」
について書いています。

 

OpenCV ライブラリは便利な関数が数多く用意されています。

ただ、初心者にとっては、使える関数が多すぎてどのように使うか迷うこともあるでしょう。

 

そこでこの記事では一般的な処理の流れに沿って、使うべき関数を整理しました。

 

この記事に掲載しているサンプルコードは環境さえ整っていれば、
コピペで動くはずなので使用して頂いてOKです。

 

なお、OpenCV の関数一覧については
【python】OpenCVの関数一覧と使い方
の記事で整理しているので併せて参考にしてみて下さい。

 

では、解説していきましょう。

 

OpenCV の処理の流れ

OpenCV の処理の流れ

チュートリアルの入り口として、
OpenCV の処理の流れを解説すると以下のようになります。

 

それぞれの処理について、サンプルコードを使って解説していきます。
(上の目次はページ内リンクになっています)

 

OpenCV で画像を読み込む

画像の読み込み

OpenCV は処理の前に画像の読み込みを行う必要があります。

 

画像の読み込みには cv2.imread 関数を使います。

img = cv2.imread('./sample.png')

 

こうすることで任意の画像に対して、画像処理を加えることができます。

 

なお、 cv2.imread 関数の使い方については
OpenCVで画像を読み込む方法【Python】
の記事で解説しています。

 

OpenCV の前処理

OpenCV の前処理

OpenCV は前処理が必要な場合があります。

 

前処理とは、 OpenCV で画像処理をするために画像データを適した状態にする処理のことです。

 

例えば、OpenCV では画像処理のインプットする画像データは
白黒画像やグレースケール画像である必要があります。

 

どちらも OpenCV の関数を使うことで変換することができます。

  • グレースケール画像: cv2.cvtColor 関数
  • 白黒画像: cv2. threshold 関数
# グレースケール画像
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 白黒画像
_, img_bw = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY)

 

なお、 それぞれの関数の使い方については

の記事で解説しています。

 

OpenCV の画像処理

OpenCV の画像処理

いよいよ、OpenCV の画像処理を行います。

 

OpenCV の画像処理は関数 1 つで行えるものから、複雑に関数を組み合わせるものまで様々あります。

 

例えば「画像に文字を印字する」という処理であれば、
以下のコードのように関数 1 つを呼び出すだけで処理を実装することができます。

cv2.putText(img,
            text='sample text',
            org=(100, 300),
            fontFace=cv2.FONT_HERSHEY_SIMPLEX,
            fontScale=1.0,
            color=(0, 255, 0),
            thickness=2,
            lineType=cv2.LINE_4)

 

なお、OpenCV の画像処理については

などの処理が用意されています。

上のリンクは解説記事へのリンクになっているので参考にしてみて下さい。

 

OpenCV で画像を保存する

画像の保存

OpenCV では画像処理を加えた後の画像データを保存する必要があります。

 

OpenCV で画像処理を加えたデータは OpenCV で扱える形式のままなので、プログラムが終了するとデータがなくなってしまいます(メモリを解放します)。

 

そこで、最後に画像データをファイルとして保存するようにしましょう。

 

OpenCV の画像データをファイルとして保存するには cv2.imwrite 関数を使用します。

cv2.imwrite('./sample_after.png', img)

こうすることで処理後の画像データをファイルとして残すことができます。

 

なお、OpenCV で画像を保存する方法については
OpenCVで画像を保存する方法【Python】
の記事で解説しています。

 

画像処理を最初から学ぶ「最適」の 1 冊

画像処理を最初から学ぶ「最適」の 1 冊

OpenCVの処理の流れと主要な関数について解説しました。

 

OpenCVは画像処理には欠かすことのできないライブラリです。

 

もし、OpenCVについて独学でスキルをつけるなら、以下の書籍がオススメです。

 

この書籍はOpenCVの基礎から応用までを
丁寧にかつ詳細に解説しています。

 

OpenCVのほぼ全てを網羅しているとも言えるほどの徹底ぶりなので、
関数のリファレンスとしても使用することができます。
本記事で解説したcv2.drawMarker関数も掲載されています。

 

また、Pythonについて基礎から学ぶのであれば、オンラインスクールがオススメです。


オンラインスクールで学習すると、講義も分かりやすく、
サポート体制もしっかりしているので、これからPythonを学ぶ人にもオススメです。


オンラインで無料レッスンを体験することもできるので、
自分にあっているかどうかを確かめることができます。


オススメは以下の3つです。
どのスクールも無料体験が用意されているので、
契約前に自分に最適なスクールを探すことができるでしょう。

✔️オススメのプログラミングスクール ベスト3

これらのプログラミングスクールは全て無料の体験コースがあります。

 

「雰囲気だけでも知りたい」
「プログラミング学習の全体像を知りたい」
「スクールに入るかどうか迷っている」
という方はとりあえず無料カウンセリングを受けてみることをオススメします。

 

無料カウンセリングだけなら費用はかかりませんし、
スクールに通うにしろ、独学で学ぶにしろ、
カウンセリングで得ることができる情報には価値があります

 

プログラミングスクールについては「プログラミングスクールで失敗しないためには【オススメベスト3も紹介】」の記事でも紹介しています。


気になった方はぜひチェックしてみて下さい〜!

コメント

タイトルとURLをコピーしました