我想在OpenCv上创建一个磁盘形结构元素。我需要我的SE与

sel = strel('disk',5);

我想使用
cvstructuringElementEx(cols,rows,anchor_x,anchor_y,shape,*values);

为此,我需要做些什么?anchor_xanchor_y的哪些值在MATLAB中给SE相同的中心点?

最佳答案

根据the docs,您可以尝试:

cv::Mat sel = cv::getStructuringElement(MORPH_ELLIPSE, cv::Size(9,9));

这给了我以下结构元素:
0    0    0    0    1    0    0    0    0
0    1    1    1    1    1    1    1    0
0    1    1    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    1    1    1    1    1    1
0    1    1    1    1    1    1    1    0
0    1    1    1    1    1    1    1    0
0    0    0    0    1    0    0    0    0

在MATLAB中,我得到了:
>> getnhood(strel('disk',5))
ans =
     0     0     1     1     1     1     1     0     0
     0     1     1     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     1     1     1     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     1     1     0
     0     0     1     1     1     1     1     0     0

所以不完全相同,但足够接近:)

09-06 18:10