Повышение точности cv.findCirclesGridPython

Программы на Python
Ответить
Anonymous
 Повышение точности cv.findCirclesGrid

Сообщение Anonymous »

Я пытаюсь откалибровать камеру с помощью cv.librateCamera openCV. Проблема, с которой я столкнулся, — это точность точек, найденных с помощью cv.findCirclesGrid. Кажется, они немного отличаются от оригинальных изображений. Один пример выглядит так. Здесь синие круги обозначают обнаруженные центры.
Мой вопрос: как следует попытаться улучшить положение центра?
Я думал о повторении все обнаруженные точки, а затем уточняйте их положение с помощью таких алгоритмов, как преобразование круга Хафа или использование cv.connectedComponentsWithStats(). Или, может быть, подогнать эллипс и найти его геометрический центр?
Какой подход будет правильным?
Спасибо за помощь.
Мой код выглядит так:
grid_w = 13
grid_h = 15

# prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)
objp = np.zeros((grid_w*grid_h,3), np.float32)
objp[:,:2] = np.mgrid[0:grid_w,0:grid_h].T.reshape(-1,2)

# Arrays to store object points and image points from all the images.
objpoints = [] # 3d point in real world space
imgpoints = [] # 2d points in image plane.

fx, fy = 16 / 3.45 * 10**3, 16 / 3.45 * 10**3
cx, cy = 2464/2, 2056/2

mtx = np.array([[fx, 0, cx],
[0, fy, cy],
[0, 0, 1]])

images = glob.glob(path + '/*.bmp')

for fname in images:
img = cv.imread(fname, cv.IMREAD_GRAYSCALE)

# Find the cirlces
ret, corners = cv.findCirclesGrid(img, (grid_w,grid_h), None, flags = cv.CALIB_CB_SYMMETRIC_GRID)

# If found, add object points and image points
if ret == True:
objpoints.append(objp)
imgpoints.append(corners)

ret, mtx, dist, rvecs, tvecs = cv.calibrateCamera(objpoints, imgpoints, img.shape[::-1], mtx, None, flags=cv.CALIB_USE_INTRINSIC_GUESS)


Подробнее здесь: https://stackoverflow.com/questions/791 ... irclesgrid
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»