【发布时间】:2015-06-24 11:30:19
【问题描述】:
我正在对 Mat 应用 erode 操作,但速度非常慢。
由于在 OpenCV 中,您可以通过两种不同的方式应用它(使用 morphologyEx 和使用 erode)。
我正在(大约)测量它的运行速度,但它们都非常慢!
这部分的代码是:
int morph_size = 20;
Mat element = getStructuringElement( MORPH_ELLIPSE, cv::Size( 2*morph_size + 1 , 2*morph_size +1), cv::Point( morph_size, morph_size ) );
// morphologyEx(imgMascara, imgMascara, MORPH_ERODE, element );
finish_time5 = clock();
erode( imgMascara, imgMascara, element );
finish_time6 = clock();
其中imgMascara 是Mat。然后,当我测量从finish_time5 和finish_time6 开始的时间时,我得到:
0.0198s
0.887s
知道为什么要花太多时间吗? (这两种功能都会发生,morphologyEx 和 erode)。
提前谢谢你
【问题讨论】:
-
这是发布版本吗?我已经看到在 Visual Studio 上进行调试构建所需的时间是在某些图像处理算法上发布构建的 100 倍。
-
这是一个调试版本@drescherjm,然后我将尝试在发布中执行它!
-
你非得用这么大的尺寸吗?
-
我没有@Micka,我的图片尺寸比高清还小。
-
您的结构元素大小为 41...如果您(可以)大幅减小该大小,您的代码应该会更快。
标签: c++ performance opencv