ロボットビジョンについての論文を読んでたら位相限定相関法というのがあり、何だろうと調べました。
画像と比較したい画像のズレを位相画像を使って得る方法らしいです。
位相画像とは何ぞやって感じです。
参考:位相画像 – Rest Term
ソース
といっても別にフーリエ変換のコードを書くとかはしないので短いですが。
import numpy as np import cv2 fimg = cv2.imread("img.jpg",0) #2次元高速フーリエ変換 Fimg = np.fft.fft2(fimg) #正規化 Fimgの絶対値は振幅スペクトル Nimg = Fimg / np.abs(Fimg) #2次元高速フーリエ逆変換 Pimg = np.fft.ifft2(Nimg).real #保存 cv2.imwrite("phase_img.jpg",Pimg)
ズレを知りたい画像の位相画像2枚が手に入れば、あとはその2枚の相関を取ってIDFTしてピークを探せばいいだけみたいです。
そのピークのズレを元にロボットアームの移動距離を逆運動学で計算すればオフラインティーチングのズレを補正できるという事ですかね?