« phpでコマンド実行するとき | メイン | kivyの勉強メモ »

2021年10月19日

opencvアフィン変換

参考 https://imagingsolution.net/imaging/affine-transformation/

#拡大縮小
scale_matrix = np.array([[scale_x,0,0],[0,scale_y,0],[0,0,1]])

#回転
rotation_matrix = np.array([[math.cos(math.radians(deg)) , -math.sin(math.radians(deg)) , 0.0],[math.sin(math.radians(deg)) , math.cos(math.radians(deg)) , 0.0],[0,0,1]])

#移動
move_matrix = np.array([[1,0,move_x],[0,1,move_y],[0,0,1]])


#拡大して → 回転して → 移動する場合 この順で
matrix_all = move_matrix.dot(rotation_matrix).dot(scale_matrix)

#cv2で使う部分を切り取り
matrix = matrix_tmp[0:2,0:3]

affine_img = cv2.warpAffine(useImg, matrix, (new_w,new_h))#最後の引数は出力サイズ 

投稿者 muuming : 2021年10月19日 12:56

コメント