ImageC에서 설명한 것처럼 OpenCV의 goodFeaturesToTrack을 사용하여 얻은 점이있는 이진 이미지가 있습니다.임의의 점 구름에 점 격자를 맞추는 방법
이미지 2에 표시에 내가 등으로 그것에 4 * 25 점의 그리드에 맞게 싶습니다 (모든 점은 이미지를 볼 수 있습니다,하지만 정규 4 * 25 점입니다 구형).
4 * 25 도트 내 모델 격자에 의해 매개 변수화된다: 1 - 좌측 상단 코너의 위치는 2 - 수평선 와 사각형의 기울기 아래 코드 기능을 보여준다 그러한 모델을 만듭니다.
이 문제는 체스 판 코너 문제에 가까울 것으로 보입니다.
필자의 모델 클라우드를 입력 이미지에 맞추고 구름의 위치와 각도를 얻는 방법을 알고 싶습니다. 두 이미지 (입력란 하나와 모델 격자가있는 곳) 사이의 거리를 쉽게 측정 할 수 있지만이 거리의 최소값을 찾기 위해 이미지의 모든 픽셀과 각도를 확인하지 않아도됩니다.
첫째, 난 그냥 이미지를 겪고, 모든 긍정적 인 픽셀의 위치 인덱스를 생성 :
def ModelGrid(pos, angle, shape):
# Initialization of output image of size shape
table = np.zeros(shape)
# Parameters
size_pan = [32, 20]# Pixels
nb_corners= [4, 25]
index = np.ndarray([nb_corners[0], nb_corners[1], 2],dtype=np.dtype('int16'))
angle = angle*np.pi/180
# Creation of the table
for i in range(nb_corners[0]):
for j in range(nb_corners[1]):
index[i,j,0] = pos[0] + j*int(size_pan[1]*np.sin(angle)) + i*int(size_pan[0]*np.cos(angle))
index[i,j,1] = pos[1] + j*int(size_pan[1]*np.cos(angle)) - i*int(size_pan[0]*np.sin(angle))
if 0 < index[i,j,0] < table.shape[0]:
if 0 < index[i,j,1] < table.shape[1]:
table[index[i,j,0], index[i,j,1]] = 1
return table