ロボットの動作領域など、ある程度範囲は決まっているが当日の状況に応じて少し変更する場合
設定ファイルで細かいパラメータを設定する方法もありますが……
今回は固定USBカメラからArUcoのマーカーを読み取り、その重心を基準に右下方向に伸びる動作領域を画像に表示させるようなツールを実装します
実際のところ
もとになる画像
arマーカー42番を使用し
$ convert logo: ar42.png -gravity center -compose over -composite - | feh -
python側
import cv2 aruco = cv2.aruco dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50) img_src = cv2.imread("target.png", 1) corners, ids, rejectedImgPoints = aruco.detectMarkers( img_src, dictionary ) cent_x = int((corners[0][0][0][0] + corners[0][0][2][0])/2) cent_y = int((corners[0][0][0][1] + corners[0][0][2][1])/2) print( cent_x, cent_y) cv2.rectangle(img_src, pt1=(cent_x, cent_y ), pt2=(cent_x + 160, cent_y + 90), color=(0, 255, 0), thickness=3, lineType=cv2.LINE_4, shift=0) cv2.imwrite("result.png", img_src)
結果