对于 OpenCV 驾驶辅助应用程序,我想生成 ROI 作为对行人进行更快 HoG 分类的候选对象。我在 GPU 上运行这个。我不想使用 detectMultiscale 函数,因为它会扫描整个图像(包括天空)。由于这些功能不可扩展,我应该使用以下哪些功能来调整图像大小以生成 ROI?
gpu::resize(const GpuMat& src, GpuMat& dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR, Stream& stream=Stream::Null()) 或
图像金字塔 cv2.pyrUp(), cv2.pyrDown()
我在 OpenCV GPU 库 (2.4.9) 中找不到图像金字塔。
谁能推荐一下?
谢谢
最佳答案
首先,您可以使用 cvRect(opencv 矩形)函数直接设置 ROI 来创建 ROI 图像/子矩阵,如下所示:
Mat image = imread("");
Rect region_of_interest = Rect(x, y, w, h);
Mat image_roi = image(region_of_interest);
但是如果你想生成更小的lowsamples(更少的行和列),金字塔和resize之间有一些区别:
-金字塔是一种过滤器,通过将所有图像与高斯卷积矩阵进行卷积来完成,然后通过拒绝偶数行和列来对图像进行下采样。</p>
-调整大小功能,进行几何变换,您可以更改内插像素值的方法。
在实践中:金字塔是一种通过 4 个子图像进行下采样的快速方法;调整大小更通用,也可用于上采样。
关于c++ - 用于生成行人检测 ROI 的图像调整大小与图像金字塔 - OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29237245/