Я пытаюсь откалибровать камеру с помощью 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
Повышение точности cv.findCirclesGrid ⇐ Python
Программы на Python
1730318866
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)
Подробнее здесь: [url]https://stackoverflow.com/questions/79142642/improving-accuracy-of-cv-findcirclesgrid[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия