Python
 Computer >> コンピューター >  >> プログラミング >> Python

OpenCVを使って画像に線を描画する方法

この記事では、OpenCVのcv2.line()関数を使用して、画像にシンプルな線を描画する方法を解説します。線の始点・終点・太さ・色を自由に指定できるので、図形の描画や注釈の追加など、さまざまな場面で活用できます。

元画像

OpenCVを使って画像に線を描画する方法

処理の流れ(アルゴリズム)

ステップ1:cv2をインポートする。
ステップ2:imread()で画像を読み込む。
ステップ3:image.shapeメソッドで画像のサイズ(高さ・幅・チャンネル数)を取得する。
ステップ4:線の始点を定義する。
ステップ5:線の終点を定義する。
ステップ6:線の太さを定義する。
ステップ7:cv2.line()関数で線を描画し、ステップ3〜ステップ6の値をパラメータとして渡す。

サンプルコード

import cv2

image = cv2.imread('testimage.jpg')
height, width, channels = image.shape
startpoint = (0, 0)
endpoint = (height, width)
thickness = 9
color = (255, 0, 0)
image = cv2.line(image, startpoint, endpoint, color, thickness)
cv2.imshow('Line', image)

実行結果

OpenCVを使って画像に線を描画する方法

コードの解説

まず、cv2.imread()で対象画像を読み込みます。続いてimage.shapeから高さと幅を取得し、それをもとに線の始点(0, 0)(左上)と終点を設定しています。これにより、画像の対角線上に線が引かれます。

thickness = 9は線の太さ(ピクセル単位)の指定です。color = (255, 0, 0)は線の色を表しており、OpenCVでは色がBGR(青・緑・赤)の順で指定されるため、この場合は青色の線になります。RGBとは順序が異なるので注意しましょう。

最後にcv2.line()に画像・始点・終点・色・太さを渡して線を描画し、cv2.imshow()で結果を表示しています。ご覧のとおり、画像に青い斜めの線が描画されていることが確認できます。

  1. PythonとOpenCVを使って画像内の円を検出する方法

    OpenCVはPython向けにcv2ライブラリを提供しており、コンピュータビジョンにおけるさまざまな形状解析に活用できます。本記事では、OpenCVを使って画像の中から「円」を検出する方法を解説します。円の検出にはcv2.HoughCircles()関数を使用します。この関数は、ハフ変換(Hough Transform)を用いてグレースケール画像から円を検出するものです。以下の例では、入力画像を読み込んだ後、そのコピーを作成し、ハフ変換を適用することで画像内の円を検出して出力します。構文cv2.HoughCircles(image, method, dp, minDist)各引数の意味は次の

  2. PythonとOpenCVで画像の輪郭を検出・描画する方法

    画像解析を行う際には、Python向けのオープンソースライブラリ「OpenCV(Open Source Computer Vision Library)」が広く利用されています。OpenCVをインストールした後、プログラム内では「cv2」という名前でインポートして使用します。 本記事では、画像ファイルに含まれる輪郭(コンタ)を検出し、描画する方法を解説します。輪郭とは、画像内の物体の形状を把握するために重要な情報で、「同じ明るさ(輝度)を持つ領域の境界上にある点を結んだ線」として定義されます。OpenCVでは、輪郭の検出にfindContours関数、輪郭の描画にdrawContours関数を