OPENCV重新映射功能,在黑色边框内自动裁剪

时间:2019-02-15 12:03:46

标签: c++ opencv image-processing

我在opencv中使用重映射来修复图像中的失真。问题在于它在图像周围的边缘上创建了黑色边框。

我尝试了BORDER_常量,但这些常量仅复制或复制黑色边框上最近的可见像素。

我想做的是在黑色边框内自动裁剪尽可能大的图像。

Image without black borders

Image with black borders

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

0 个答案:

没有答案