【发布时间】:2016-07-07 16:19:47
【问题描述】:
鉴于用例,我想在特定图像中旋转 ROI。例如,我在图像中预定义了边界框,现在的任务是代表一个角度旋转这些框内的图像部分。
此外,旋转必须在边界框内,因此 ROI 是在变换裁剪之后。
我尝试使用创建边界框的子图像的方法,而不是旋转它并将其放回源图像中的原始位置。问题是,我有一个巨大的图像数据集(> 100.000),我认为我的方法可能会减慢这个过程。
还有其他方法可以完成这种转换吗?
这是一个快速的模型,它应该如何看待转换。
【问题讨论】:
-
您可以更精确地描述所需结果。一两个数字?
-
到目前为止,您甚至没有提供任何有关您如何做到这一点的详细信息。多久时间?什么是慢?你认为什么会很快?哪个角度?
-
@Cheersandhth.-Alf 我添加了两张图片。
-
@Piglet 我没有测试速度,因为我评估了解决问题的可能性。如果我一开始不需要提取 ROI,也许会更快。
-
要旋转图像,您必须创建该图像的副本,因为您无法读取和写入同一图像。你会覆盖未处理的像素。如果您提取 ROI(深拷贝)并旋转该子图像,您将创建该子图像的副本,仅用于旋转。由于您的子图像已经是原始图像的副本,您可以保存一个深层副本并将旋转结果直接写入完整图像。总之,这两种方式都应该很快。这是一次性工作吗?
标签: c++ image opencv c++11 image-processing