Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何减少以下代码的执行时间?_C++_Performance_Opencv_Image Processing_Sketching - Fatal编程技术网

C++ 如何减少以下代码的执行时间?

C++ 如何减少以下代码的执行时间?,c++,performance,opencv,image-processing,sketching,C++,Performance,Opencv,Image Processing,Sketching,我试图给我在opencv中使用高斯建模技术的图像提供一些草图效果,但我面临一个问题,那就是它需要更多的时间来执行。当图片尺寸较小时,时间会减少。如果图片尺寸较大,则需要更多时间。请告诉任何人如何减少执行时间,而不改变以下代码的图像的实际大小 #包括“opencv2/opencv.hpp” #包括 #包括 #包括“opencv2/ml/ml.hpp” #包括 #包括 使用名称空间cv; 使用名称空间std; 无效组合颜色(垫和src、垫和dst) { //集群数量 int NRGMMC组件=96

我试图给我在opencv中使用高斯建模技术的图像提供一些草图效果,但我面临一个问题,那就是它需要更多的时间来执行。当图片尺寸较小时,时间会减少。如果图片尺寸较大,则需要更多时间。请告诉任何人如何减少执行时间,而不改变以下代码的图像的实际大小

#包括“opencv2/opencv.hpp”
#包括
#包括
#包括“opencv2/ml/ml.hpp”
#包括
#包括
使用名称空间cv;
使用名称空间std;
无效组合颜色(垫和src、垫和dst)
{
//集群数量
int NRGMMC组件=96;
cv::GaussianBlur(src,src,尺寸(3,3),1);
int srchheight=src.rows;
int srcWidth=src.cols;
//获取数据点
向量列表采样点;

对于(int y=0;y,瓶颈很可能是opencv的cv::ml::EM::train方法。训练分类器不是一件容易或简单的任务。分类问题尚未最终解决。这就是为什么算法之间存在巨大的权衡和差异,更不用说不同的问题空间了

至于性能,如果您坚持使用EM,请检查并可能修改其父类:

  • 培训和/或培训的最大迭代次数
  • 停止培训的期限标准

由于使用第三方库,您无法在提高速度的同时又不牺牲准确性。另一方面,该库是开放源代码的,并且可能经过了合理的优化。我不建议尝试优化实际的库代码。

一切看起来都很慢。但在第一个循环中,最困难的部分应该是rand()在一个第三循环中,内嵌的EMMYMAME->预测可能会有帮助,将字节转换为浮点然后再加倍到字节似乎是愚蠢的。谢谢,试图纠正它,你可以考虑设置一些计时工具来识别哪些部件是SLO。w、 是的;当你知道需要优化什么时,优化代码会更容易、更有效。在第三个循环中,内联em_model->predict。我发现时间消耗更多。但是我无法继续,所以请为该循环选择其他方法