OpenCV3とPython3で形状のある物体の輪郭と方向を認識する(主成分分析:PCA、固有ベクトル) こちらのコードを参考に動かしてみた。一か所修正で動いた。 コードの意味はまだよくわからないが、すごいな。 ラベルの外観検査の傾き検出に使えそうだ。 # -*- coding: utf-8 -*- import cv2 import math import numpy as np # ベクトルを描画する def drawAxis(img, start_pt, vec, colour, length): # アンチエイリアス CV_AA = 16 # 終了点 end_pt = (int(start_pt[0] + length * vec[0]), int(start_pt[1] + length * vec[1])) # 中心を描画 cv2.circle(img, (int(start_pt[0]), int(start_pt[1])), 5, colour, 1) # 軸線を描画 cv2.line(img, (int(start_pt[0]), int(start_pt[1])), end_pt, colour, 1, CV_AA); # 先端の矢印を描画 angle = math.atan2(vec[1], vec[0]) print(angle) qx0 = int(end_pt[0] - 9 * math.cos(angle + math.pi / 4)); qy0 = int(end_pt[1] - 9 * math.sin(angle + math.pi / 4)); cv2.line(img, end_pt, (qx0, qy0), colour, 1, CV_AA); qx1 = int(end_pt[0] - 9 * math.cos(angle - math.pi / 4)); qy1 = int(end_pt[1] - 9 * math.sin(angle - math.pi / 4)); cv2.line(img, end_pt, (qx1, qy1), colour, 1, CV_...
コメント
コメントを投稿