Squeak.ru - шаблоны программирования

Черные столбцы на карте несоответствия при использовании StereoBM

Я пытаюсь использовать StereoBM в OpenCV для извлечения карты несоответствия из пары изображений. Не обращая внимания на плохое качество карты несоответствий ниже, вы можете видеть, что слева на ней есть несколько черных столбцов, которые соответствуют параметру ndisparities. Я думал, что ndisparities только сообщает StereoBM, насколько "далеко" он может искать соответствие. Что могло вызвать такое поведение? Кажется, это ограничивает ширину результирующей карты глубины, но я не понимаю, почему.

Карта несоответствия

Вы можете увидеть стереопару здесь и мой код ниже. Заранее спасибо за любые указатели!

Mat Limg = imread("left.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat Rimg = imread("right.jpg", CV_LOAD_IMAGE_GRAYSCALE);

Mat disp(Limg.size(), CV_16SC1), disp8U;
int ndisparities = 512;
StereoBM SBM(StereoBM::BASIC_PRESET, ndisparities , 11);
SBM(Limg, Rimg, disp, CV_16S);

double minVal, maxVal;
minMaxLoc( disp, &minVal, &maxVal );
disp.convertTo( disp8U, CV_8UC1, 255/(maxVal - minVal));
imshow("disparity", disp8U)

Ответы:


1

Карта несоответствий количественно определяет продольное (эпиполярное) смещение между соответствующими парами точек на левом и правом изображениях.

В общем,

 disparity := x_l - x_r

где x_l и x_r — проекции на фокальную плоскость двух камер данной точки пространства. (Имейте в виду, что большие расхождения характеризуют пиксели, расположенные ближе к камерам. [A])


Параметр ndisparities количественно определяет ожидаемое максимальное расхождение, которое может быть (при условии, что вы можете пренебречь минимальным расхождением).

Поскольку вы предполагаете, что ndisparities является вашим самым большим несоответствием, это верно

    x_l - x_r < ndisparities,

i.e.

    x_r > x_l - ndisparities 

поэтому нет смысла искать соответствия с правым изображением любого пикселя в первых ndisparities столбцах левого изображения: просто не может быть.

В некотором смысле конус обзора правой камеры начинается ровно на ndisparities столбцов справа от конуса обзора левой камеры.


ИСПРАВЛЕНИЕ:

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

Поскольку ndisparities зависит от расстояния до камер ближайшего объекта (от [A]), либо ставьте камеры дальше от объекта, либо ставьте камеры ближе друг к другу.

В вашем очень конкретном случае у вас огромное несоответствие (много работы для стереоБМ)!! Символ «x» на переднем плане показывает несоответствие, сравнимое с масштабом изображения!! Я считаю, что вам нужно поставить свои камеры подальше.

05.04.2013
  • Это имеет удивительный смысл, хотя неинтуитивно то, что поле зрения будет уменьшаться при допущении более высоких расхождений. Камеры расположены так близко, чтобы получить максимально подробный обзор объекта. 08.04.2013
  • Привет. Вот как это сделать. Поместите какое-нибудь изображение слева от изображения. Затем обрежьте его. ... но вскоре я понял, что это пост 2013 года. Слишком поздно я думаю. 16.03.2016
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...