我将{strong>侵蚀操作应用于Mat
,但速度非常慢。
因为在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
)。
提前谢谢
答案 0 :(得分:4)
我找到了腐蚀的原因。原因有三个:
但是,我不能这样做,因为我需要这个内核大小。所以我继续寻找另一个原因,并发现:
MORPH_ELLIPSE
)。如果我将其更改为MORPH_RECT
或MORPH_CROSS
,则会更快 。由于我的应用适用于所有应用,我只是将其更改为MORP_RECT
。
感谢大家的评论,帮助我找到了这些