在我使用 OpenCV C++ 拼接 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 的坏过量错误。 希望对您有所帮助!
关于c++ - 拼接后裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33497928/