【发布时间】:2017-04-21 18:14:55
【问题描述】:
最近开始玩 OpenCV,尝试了 SURF 算法,它在 CPU 上真的很慢,并且不适用于 GPU 上的彩色图像(有一个检查 type==CV_8UC1 的断言),并将图像转换为灰度给出一些非常糟糕的结果。
我想知道 OpenCV 中的 gpu 上是否有彩色实现,或者是否有一些棘手的解决方法,比如在所有 3 个通道上执行算法,然后神奇地合并它们?
谢谢。
【问题讨论】:
最近开始玩 OpenCV,尝试了 SURF 算法,它在 CPU 上真的很慢,并且不适用于 GPU 上的彩色图像(有一个检查 type==CV_8UC1 的断言),并将图像转换为灰度给出一些非常糟糕的结果。
我想知道 OpenCV 中的 gpu 上是否有彩色实现,或者是否有一些棘手的解决方法,比如在所有 3 个通道上执行算法,然后神奇地合并它们?
谢谢。
【问题讨论】:
在 OpenCV 的非 GPU 版本的 SURF 中没有对彩色图像进行特殊处理; code 表明它只调用cvtColor(img, img, COLOR_BGR2GRAY),如果它获得具有多个通道的图像。
您可以尝试converting the image to HSV 并使用一个或多个 H、S 和/或 V 通道。在this question 进行更多讨论。
【讨论】: