c++ - 裁剪图像导致越界错误

标签 c++ opencv crop

<分区>

我正在尝试裁剪图像。有时,计算出的裁剪图像会超出初始尺寸(因为裁剪是通过使用距离来计算的)。怎么可能不接收越界错误,而是用黑色填充其余部分(与 wrapAffine 旋转中的效果相同)。

最佳答案

嗯,根据定义,裁剪就是缩小图像的大小。所以如果你想潜在地同时扩展图像,并用黑色填充它,你可以先放大它。类似于以下算法:

  1. 取原始图像和裁剪矩形的最大边界框
  2. 创建新尺寸的空(黑色)图像
  3. 将原图复制到黑图
  4. 裁剪生成的图像

您可以将其包装到一个类中,并为其提供与裁剪过滤器相同的接口(interface),然后您将拥有一个通用的解决方案。

关于c++ - 裁剪图像导致越界错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21018928/

相关文章:

c++ - 从 xcode c++ 程序终端调用 OSX 包

c++ - 如何检查文件夹或文件是否隐藏=

c++ - 是否可以从 decltype 获取类型?

c++ - 是否可以使用cocos2d-x调度器延迟一行代码?

Delphi - 如何裁剪位图 "in place"?

安卓 Glide : crop - cut off X pixels from image bottom

android - NDK - GNUSTL 从 NDK(修订版 r18)中删除后出现的问题

c++ - OpenCV 中的 BoW 使用预先计算的特征

opencv - C++-ObjC OpenCV 约束 Delaunay

ios - 如何使用 Swift 修剪视频文件并转换为 20 秒视频?