діспаратностей, отриманих при різних порогах допустимого значення коефіцієнта кореляції
Отримані результати показують, що вибір порога допустимого коефіцієнта кореляції залежить від параметрів зображень. Високий поріг, як показано на рис. 12 і 15 значною мірою скоротити вплив шумів і залишити тільки корисну інформацію на відновленій мапі стереодіспаратностей. Проте дані на рис. 11, 13 і 14 показують, що такий же високий поріг веде і до відсікання корисної інформації і значно зменшує щільність відновленої карти стереодіспаратностей.
Висновок
У роботі був реалізований кореляційний алгоритм побудови карти диспаратности по стереопари, отриманим за допомогою двох камер, зміщених один щодо одного по осі абсцис. Проведена перевірка працездатності алгоритму на різних стереопари. Представлені результати дослідження якості роботи алгоритму в залежності від розміру вікна, в якому розраховується коефіцієнт кореляції і допустимого значення коефіцієнта кореляції.
Показано, що для різних сцен необхідний адаптивний вибір розміру кореляційного вікна по осі абсцис, який залежить від розміру стереобази і відстані до об'єктів, диспаратность яких обчислюється. Розглянуто ефект зменшення дозволу побудованої карти стереодіспаратностей при зайвому збільшенні розміру кореляційного вікна по осях абсцис і ординат (рис. 6-10). Розглянуто позитивний вплив збільшення розміру кореляційного вікна по осі ординат на щільність і якість побудованої карти стереодіспаратностей (рис. 6-10).
Продемонстровано, що високий поріг допустимого значення коефіцієнта кореляції придатний (і дозволяє отримати якісні результати з мінімальною кількістю шуму) для зображень сцен, що містять чітко окреслені фігури (що мають чіткі межі) з мінімальними перепадами яскравості всередині них. Для зображень сцен, що містять безліч дрібних деталей (наприклад, сцени природи) більше підходить низький поріг допустимого значень коефіцієнта кореляції, тому дозволяє підвищити щільність побудованої карти стереодіспаратностей.
Додаток
Лістинг програми, що реалізує побудова карти стереодіспаратностей подається на вхід стереопари на мові програмування C ++ з використанням бібліотеки OpenCV версії 2.3.1
Програма складається з декількох файлів. Частина, що виконує знаходиться в кінці програми.
Файл «opencv2.h» (Містить оголошення деяких загальних допоміжних функцій і вхід в простір імен cv. Включений в кожен файл програми)
# ifndef OPENCV2_H _
# define OPENCV2_H _
# include «opencv cv.h»
# include «opencv highgui.h»
namespace cv;
fillMat (Mat amp; mat, float color);// Зафарбувати матрицю типу float одним кольором
# endif
Файл «opencv2.cpp» (Містить реалізацію допоміжних функцій, оголошених в «opencv2.h»).
# include «opencv2.h»
# include lt; stdio.h gt;
# include lt; vector gt;
# include lt; math.h gt;
//Реалізація допоміжних функцій, оголошених в opencv2.h
void fillMat (Mat amp; mat, float color)
{(int y=0; y lt; mat.rows; y ++) (int x=0; x lt; mat.cols; x ++). at lt; float gt; (y, x)= color;
}
Файл «correlation.h» (Містить оголошення функції обчислення коефіцієнта кореляції і допоміжних функцій)
# ifndef CORRELATION_H
# define CORRELATION_H
# include «opencv2.h»
# include lt; stdio.h gt;
# include lt; windows.h gt;
# include lt; math.h gt;
getCorrelationCoef (const Mat amp; mat1, const Mat amp; mat2); var (const Mat amp; mat); getMax (const Mat amp; mat);
# endif
Файл «correlation.cpp» (Містить визначення функції обчислення коефіцієнта кореляції і допоміжних функцій, оголошених в «correlation.h»).
# include «correlation.h»
# include «opencv2.h»
# include lt; stdio.h gt;
# include lt; windows.h gt;
# include lt; math.h gt;
getCorrelationCoef (const Mat amp; mat1, const Mat amp; mat2)
{m1=0; m2=0; (int y=0; y lt; mat1.rows; y ++)