裁剪图像会导致outofbounds错误

时间:2014-01-09 11:28:13

标签: c++ opencv crop

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

1 个答案:

答案 0 :(得分:1)

嗯,裁剪是根据定义减少图像的大小。因此,如果您希望同时扩展图像并将其填充为黑色,则可以先将其放大。类似于以下算法:

  1. 获取原始图像和裁剪矩形的最大边界框
  2. 创建新尺寸的空(黑色)图像
  3. 将原始图像复制到黑色图像
  4. 裁剪结果图像
  5. 你可以将它包装成一个类并给它与裁剪过滤器相同的界面,然后你会有一个通用的解决方案。