OpenCV Reference

【OpenCV-Python】line(線の描画)

OpenCVで画像に線を描画するには、line()関数を用います。

line()関数の構文

line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) ->img

引数

img 線の描画先の画像データ
pt1 線の始点の座標 (X座標, Y座標)のタプルで指定します。
ただし、座標の値は整数です。(小数は非対応)
pt2 線の終点の座標 (X座標, Y座標)のタプルで指定します。
ただし、座標の値は整数です。(小数は非対応)
color 線色
カラーの場合は、(B, G, R)の順のタプルで指定します。
thickness 線幅を整数で指定します。
lineType cv2.LINE_4     4連結
cv2.LINE_8     8連結(デフォルト)
cv2.LINE_AA   アンチエイリアス
のいずれかを指定します。
shift 点座標の小数ビット数、デフォルトで0
x, y座標が以下の式に基づいて変換されます。
(x, y) -> (x * 2^(-shift),  y * 2^(-shift))

 

戻り値

img 画像データに追加で線が描画された画像データ(引数で渡した画像と同じデータ)

 

サンプルプログラム

import cv2
import numpy as np

img = np.zeros((10, 10, 3), dtype = np.uint8)

cv2.line(img, (1, 0), (8, 3), (10, 20, 128), 1)
cv2.line(img, (8, 5), (1, 8), (255, 128, 10), 1)

cv2.namedWindow("Image", cv2.WINDOW_NORMAL)
cv2.imshow("Image", img)
cv2.waitKey()

実行結果

OpenCV Python line

 

まとめ

線の始点、終点の座標は整数となります。

特に、座標を計算で求めた時に、小数座標を渡してエラーにはまりやすいので、注意してください。

 

参考リンク

OpenCV: Drawing Functions
【OpenCV-Python】LineTypes(線描画の種類)
OpenCVで線を描画する際、斜めに線を描画すると、どうしても線がギザギザしてしまうのですが、このギザギザ部分の描画方法をLineTypes enumで指定します。 ほとんどの線や円などの描画では、 cv2.LINE_8 が初期値になってい...
【OpenCV-Python】色を指定して新規画像データを初期化
OpenCVで、画像に線や円などを描画する際、ベースとなる画像データを色を指定して新規作成したい時があるかと思います。 PythonのOpenCVにはC++のMatクラスのようなものはなく、画像データはnumpyのndarrayなので、nu...
OpenCV: Drawing Functions

コメント

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