Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【第12回】OpenCVを用いた画像内への図形の描画

はじめに

OpenCVとはインテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリで、画像処理・画像解析および機械学習等の機能を持つC/C++JavaPythonMATLAB用ライブラリとなっています。

OpenCVには以下のような機能があります。

  • グレースケール化
  • 2値化
  • 輪郭の検出
  • 顔検出
  • ノイズ除去
  • テンプレートマッチング

上記の機能以外にも、OpenCVを用いて画像に図形を描画することができます。物体検出をした際にその座標にバンディングボックスの四角い枠を描画するなど図形描画は頻繁に使用します。

本記事ではOpencCVを用いた画像内への図形の描画の方法を簡単に紹介します。

SAMURAI TERAKOYA

 

1. 本記事で使用する画像

本記事では以下の白色の画像を使用します。1088×720pixelの画像となっています。

 

2. 画像内への図形の描画

それでは、いくつかのオブジェクトを描画してみたいと思います。コード例は以下の様になります。

2.1 線の描画

線の描画にはcv2.line()を用います。

 

2.2 矢印の描画

矢印の描画にはcv2.arrowedLine()を用います。

 

2.3 四角形の描画

四角形の描画にはcv2.rectangle()を用います。

 

2.4 円形の描画

円形の描画にはcv2.circle()を用います。

 

2.5 楕円の描画

楕円の描画にはcv2.ellipse()を用います。

 

2.6 多角形の描画

多角形の描画には、cv2.fillPoly()やcv2.fillConvexPoly()を用います。

 

2.7 文字の描画

文字の描画にはcv2.putText()を用います。

 

3. すべての図形の描画

上記のすべてのオブジェクトを描画した結果は以下の様になります。

 

オススメ書籍

Pythonで始めるOpenCV4プログラミング

実践OpenCV4 for Python 画像映像情報処理と機械学習

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

おわりに

本記事ではOpencCVを用いた画像内への図形の描画の方法を簡単に紹介しました。物体認識、物体検出などで図形を描画したり、マスク画像を生成したりするのに使用する機能なので、ぜひ覚えて使いこなせるようにしましょう。