1

在我使用 OpenCV C++ 拼接 2 张图像后,我想裁剪图像以移除拼接图像周围的黑色区域。我会丢失一部分图像,但没关系。图像如下所示:

在此处输入图像描述

如何找到图像角落并裁剪所有黑色区域?

如果有什么好的参考资料,请提供给我一些。

问候,

4

2 回答 2

2

我一直在使用 DJI 开发指南中的这段代码(搜索“裁剪全景”部分)。https://dji-dev.gitbooks.io/mobile-sdk-tutorials/content/en/iOS/PanoDemo/PanoDemo_en.html#stitching-photos

乍一看,该算法似乎不是很健壮,但到目前为止,它已被证明对于我的拼接用例来说已经足够好了。但是,我相信代码在这两行中有几个错误

bool isBottomNotBlack=checkBlackRow(gray, roiRect.y+roiRect.height,roiRect);
bool isRightNotBlack=checkBlackColumn(gray, roiRect.x+roiRect.width,roiRect);

应该改为

bool isBottomNotBlack=checkBlackRow(gray, roiRect.y+roiRect.height-1,roiRect);
bool isRightNotBlack=checkBlackColumn(gray, roiRect.x+roiRect.width-1,roiRect);

否则,您可能会得到非系统 C 的严重过剩错误。希望有帮助!

于 2016-03-15T06:44:15.317 回答
0

裁剪现在集成在opencv_stitching_tool中

于 2022-02-02T07:08:04.383 回答