Я использую remap в opencv, чтобы исправить искажения в изображениях.Проблема в том, что он создает черные границы на краях, окружающих изображение.
Я пробовал константы BORDER_, но они копируют или копируют только ближайшие видимые пиксели поверх черной границы.
Что яВы хотите автоматически обрезать максимально возможное изображение в пределах черной рамки.
Изображение без черных границ
Изображение с черными границами
Есть ли какой-нибудь флаг или функция в opencv, которая делает это автоматически?
Пример кода:
Mat img = imread(img_filename, CV_LOAD_IMAGE_COLOR);
initUndistortRectifyMap(K, D, Mat(), getOptimalNewCameraMatrix(K, D, img.size(), 1, img.size(),0), img.size(), CV_32F, lmapx, lmapy);
remap(img, imgU, lmapx, lmapy, cv::INTER_LINEAR, cv::BORDER_DEFAULT);
imwrite(out_filename, imgU);