0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OpenCVで線とか矩形とかループとか入力する

Last updated at Posted at 2020-01-30

背景

OpenCVを使って画像フィルタを試す時など、画像全体ではなく一部をクロップしたり、ループ部分だけへの操作などが欲しい時があります。

そんな時いちいち座標を自分で定義してやるのはヒジョーに面倒なので、画面で各種の図形入力ができるようにしたライブラリを作りました。githubにあげてあるので、良かったら使ってみてください。

OpenCV の python バインディング専用です。

機能

  • LineOperator: ドラッグで線を入力する
  • PolylineOperator: 点をクリックして行き折れ線を入力する
  • PolygonOperator: 点をクリックして行きポリゴンを入力する
  • RectOperator: ドラッグで矩形を入力する
  • BrushOperator: ドラッグでマスク領域を塗りつぶす
  • KeyOperator: ウィンドウでのキー管理

使い方

LineOperator の使い方はこんな感じです。

import cv2
from cv2operator import KeyOperator, OperatorWindow, LineOperator

def line_cb(p1, p2):
    print(f"line: p1={p1}, p2={p2}")

image = cv2.imread("goru.jpg")
window = OperatorWindow("example", image)

line_op = LineOperator(window, callback=line_cb)

key_op = KeyOperator()
print(key_op.help())
key_op.main_loop()

その他の入力

その他については examplesdemo.py を参照してください。

こんな入力が可能です。

RectOperator

image

LineOperator

image

PolylineOperator

image

PolygonOperator

image

BrushOperator

image

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?