拼接后裁剪图像

Posted

技术标签:

【中文标题】拼接后裁剪图像【英文标题】:Crop image after stitching 【发布时间】:2015-11-03 11:25:35 【问题描述】:

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

我怎样才能找到图像的角落并裁剪所有的黑色区域??

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

问候,

【问题讨论】:

你可以在***.com/questions/21410449/…给我答案试试 谢谢,链接中的代码很好,但可能需要一些优化。非常感谢。 是的,它肯定没有优化;) 不幸的是,在某些情况下,代码没有正确裁剪图像。这让我失去了大部分的形象。 【参考方案1】:

我一直在使用 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 的严重过剩错误。 希望对您有所帮助!

【讨论】:

【参考方案2】:

裁剪现已集成在opencv_stitching_tool

【讨论】:

以上是关于拼接后裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

目标检测图像裁剪/标签可视化/图像拼接处理脚本

图像拼接基于matlab最低能量线裁剪图像拼接含Matlab源码 2127期

图像拼接基于matlab最低能量线裁剪图像拼接含Matlab源码 2127期

opencv图像裁剪与拼接

如何在 iOS Sprite Kit 中裁剪两张图像并拼接成一张?

OpenCV 例程 300篇255.OpenCV 实现图像拼接