OpenCV Reference

【OpenCV-Python】LineTypes(線描画の種類)

OpenCVで線を描画する際、斜めに線を描画すると、どうしても線がギザギザしてしまうのですが、このギザギザ部分の描画方法をLineTypes enumで指定します。

ほとんどの線や円などの描画では、 cv2.LINE_8 が初期値になっています。

 

LineTypes enum

Filed
cv2.LINE_4 4連結
cv2.LINE_8 8連結
cv2.LINE_AA アンチエイリアス

4連結、8連結という言葉はラベリング処理の時に登場しますが、

4連結は、上下、左右方向につながった線で描画します。

8連結は、上下、左右、斜め方向につながった線で描画します。

アンチエイリアスは、ギザギザの部分をぼかして描画します。

 

具体的には、次のサンプルを参照ください。

 

サンプルプログラム

import cv2
import numpy as np

img = np.zeros((80, 50), dtype = np.uint8)

cv2.line(img, (5, 5), (45, 20), 255, 1, cv2.LINE_4)
cv2.line(img, (5, 15), (45, 30), 255, 1, cv2.LINE_8)
cv2.line(img, (5, 25), (45, 40), 255, 1, cv2.LINE_AA)

cv2.circle(img, (20, 60), 15, 255, 1, cv2.LINE_4)
cv2.circle(img, (20, 60), 10, 255, 1, cv2.LINE_8)
cv2.circle(img, (20, 60), 5, 255, 1, cv2.LINE_AA)

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

実行結果

OpenCV Python LineTypes

※文字の部分は別途、画像処理ソフトで追加しています。

 

参照ページ

OpenCV: Drawing Functions

コメント

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