我在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);