前提・実現したいこと
python openCV で4点をマウス入力で座標を確認し、その点を用いて透視変換するようなコードを書きたいです。座標に名前をつけてコードの####に入れて自動化したいのですがどうすれば良いでしょうか。
コード一部抜粋
data_num = 4;
points = np.zeros([1,data_num,2],dtype = int)
pt = np.array([0,0])
def mouse(event, x, y, flags, param):
if pt[0] > (data_num-1): return if event == cv2.EVENT_LBUTTONUP: points[0][pt[0]] = [x,y] cv2.circle(window, (x,y), 10, (0,0,255), -1) pt[0] += 1
window = cv2.imread("px.jpg")
cv2.namedWindow("window", cv2.WINDOW_KEEPRATIO)
cv2.setMouseCallback("window", mouse)
while True:
cv2.imshow("window", window)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
print(points)
while True:
ret, frame = cap.read()
bf = np.array(@@@@, dtype=np.float32) af = np.array([[0, 0], [500, 0],[0, 500], [500, 500]], dtype=np.float32) M = cv2.getPerspectiveTransform(bf, af) frame = cv2.warpPerspective(frame, M, (500, 500), flags=cv2.INTER_CUBIC) if ret: cv2.imshow(window_name, frame) if cv2.waitKey(delay) & 0xFF == ord('q'): break
cv2.destroyWindow(window_name)
cap.release()
よろしくお願いします
あなたの回答
tips
プレビュー