入力画像を三角ポリゴン化するプログラム。
元画像 | 変換画像 |
---|---|
![]() |
![]() |
- Windows 10 Home
- pyenv
- Python3.11.3
pyenv local 3.10.9
python -m venv venv
venv/Script/activate
(venv)pip install -r requirements.txt
import cv2
from polygonize import Polygonize
image = cv2.imread("./pic/shikunIMG_9107_TP_V4.jpg")
# インスタンスの初期化
polygonizer = Polygonize()
# 三角点を取得
triangle_samples = polygonizer.polygonize(
img, args.max_point_num,
threshold=args.threshold
)
# 画像を三角ポリゴン化する
ret_img = polygonizer.render(img, triangle_samples)
# 画像を保存する
cv2.imwrite(args.output, ret_img)
# 画像を変換するサンプル
(venv)python example.py {画像のパス} --output {結果ファイルのパス}
(venv)python example.py -h
usage: example.py [-h] [--max_point_num MAX_POINT_NUM] [--threshold THRESHOLD] [--output OUTPUT] image
positional arguments:
image 画像のファイルパス
options:
-h, --help show this help message and exit
--max_point_num MAX_POINT_NUM
サンプル点の最大数 (default. 1000)
--threshold THRESHOLD
サンプル点を取得するための重みの閾値 (default. 0.02)
--output OUTPUT 出力画像のファイルパス (default. result.jpg)
# カメラ映像を変換するサンプル
(venv)python example_cam.py
(venv)python example_cam.py -h
usage: example_cam.py [-h] [--video VIDEO] [--max_point_num MAX_POINT_NUM] [--threshold THRESHOLD]
options:
-h, --help show this help message and exit
--video VIDEO カメラデバイスID
--max_point_num MAX_POINT_NUM
サンプル点の最大数 (default. 1000)
--threshold THRESHOLD
サンプル点を取得するための重みの閾値 (default. 0.02)
pmaldonado/PyTriを参考にさせていただきました。
サンプルで表示している画像はフリー素材ぱくたそ様からお借りしています。