opencv中的磁盘结构元素

Nav*_*eep 2 opencv

我知道可以在MATLAB中创建磁盘结构元素,如下所示:

se=strel('disk',4); 

 0     0     1     1     1     0     0
 0     1     1     1     1     1     0
 1     1     1     1     1     1     1
 1     1     1     1     1     1     1
 1     1     1     1     1     1     1
 0     1     1     1     1     1     0
 0     0     1     1     1     0     0
Run Code Online (Sandbox Code Playgroud)

是否有任何函数或方法或任何其他方式在opencv中创建与上面相同的结构元素.我知道我们可以使用循环手动创建它,但我只想知道是否存在某些功能.

her*_*tao 5

您可以在OpenCV中获得的最接近的(不完全相同)是通过调用getStructuringElement():

int sz = 4;
cv::Mat se = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(2*sz-1, 2*sz-1));
Run Code Online (Sandbox Code Playgroud)

,给矩阵赋值

[0, 0, 0, 1, 0, 0, 0;
  0, 1, 1, 1, 1, 1, 0;
  1, 1, 1, 1, 1, 1, 1;
  1, 1, 1, 1, 1, 1, 1;
  1, 1, 1, 1, 1, 1, 1;
  0, 1, 1, 1, 1, 1, 0;
  0, 0, 0, 1, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)