拼接后裁剪图像
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期