【发布时间】:2016-01-28 13:22:46
【问题描述】:
我想在 OpenCV 中创建一个双通道矩阵,其值是对应的一对行和列索引。我可以通过以下方式轻松做到这一点:
for (int i = 0 ; i< img_height ; ++ i){
for (int j = 0 ; j < img_width ; ++ j){
src.ptr<Point2f>(i)[j] = Point2f(j,i);
}
}
我想知道 OpenCV 中是否有一种方法可以更快、更紧凑地初始化这样的矩阵,而不必使用这种逐元素的方法。我搜索了文档,但没有找到任何可以帮助我实现此目的的东西。
我之所以这么问,是因为我确实需要我的应用程序更快,所以我正在寻找可以对我的代码应用的任何可能的改进。
提前致谢
【问题讨论】:
-
没有内置函数可以做到这一点。你最终可以play with repeat。但是,我不认为这个简短的 sn-p 是一个瓶颈,即使你可以应用一些改进。你剖析过吗?多久时间?典型的图像宽度和高度?
-
图像尺寸为 [320x240],但稍后我将使用 [640x480]。大约需要 0.7 毫秒。当然,这不是我的瓶颈,但每一个最终的小加速都会受到赞赏。
-
好的。发布了答案。你能在你的机器上试试 sn-p 并检查执行时间吗?在我的机器上,这要快一点。