Skip to content

ParkTrack-Project/camera_image_fix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Оконное приложение для выпрямления изображения с широкоугольных камер

Запуск:

python3 -m fisheye_fix.py \
    --source in.jpg        # Входное изображение/видео или URL (обязательно)
    --out-img res.jpg      # Путь для сохранения выпрямленного изображения
    --out-calib calib.json # Путь для сохранения подобранных настроек по выпрямлению изображения
    --show                 # Флаг, чтобы посмотреть выпрямленное изображение в окне программы

Как использовать программу для выпрямления изображений

После запуска скрипта с аргументами, указанными выше, откроется окно с входным изображением. Выберите на изображении предмет, который в реальности прямой, но на изображении изогнутый, например, бордюр вдоль дороги. Начиная от края этого бордюра расставляйте мышкой точки по всей длине бордюра до его конца.

Можно выбрать на изображении несколько таких линий, чтобы закончить выбирать текущую и перейти к следующей, нажмите на клавиатуре букву n.

Если захотите отменить выбор последней точки, нажмите u.

Чтобы отменить все точки, нажмите r.

Если Вы закончили и хотите выпрямить изображение по указанным точкам, нахмите Enter.

Чтобы выйти из программы, нажмите q.

Пример выпрямления изображения

Изображение с камеры до применения коррекции: исходное изображение

Изображение с камеры после применения коррекции: выпрямленное изображение

Как видно выше, забор вдоль дороги и бордюры расположены горизонтально.

Полученный файл коррекции calib.json:

{
  "image_width": 1920,
  "image_height": 1080,
  "K": [
    [
      1739.237279181759,
      0.0,
      947.5335576199107
    ],
    [
      0.0,
      2244.705015334057,
      564.6946579168148
    ],
    [
      0.0,
      0.0,
      1.0
    ]
  ],
  "D": [
    -0.37062084436192333,
    0.05057465862770827,
    0.033198096980616335,
    0.012812747166936252
  ],
  "balance": 0.0,
  "model": "opencv_fisheye_k1k2k3k4"
}

Использование приложения в проекте ParkTrack

Первая публичная камера, которая использовалась в нашем проекте, имела широкоугольный объектив. Поскольку labeler подразумевает выбор парковочных зон с прямыми сторонами, было невозможно корректно выбрать парковочные зоны на изображении без коррекции искривления изображения. Само изображение с камеры мы выпрямлять не стали, зато использовали полученный этим скриптом файл calib.json для отрисовки парковочных зон на камере с изогнутыми сторонами, что соответствовало правильному расположению парковок и позволило правильно относить машины к тем или иным зонам.

About

Straightening images from wide-angle cameras

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages