我有一個帶有點的二進制圖像,我使用OpenCV的goodFeaturesToTrack獲取,如Image1所示。如何適合隨機點雲上的點網格
我想適應的4個* 25點就可以了,比如網格上鏡像2所示(並非所有的點都可見的圖像,但它是一個普通的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