Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
opencv中的磁盘结构元素_Opencv - Fatal编程技术网

opencv中的磁盘结构元素

opencv中的磁盘结构元素,opencv,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

我知道可以在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
在opencv中是否有任何函数、方法或任何其他方法来创建与上述相同的结构元素。我知道我们可以使用循环手动创建它,但我只想知道是否存在用于该功能的函数。

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

,它为矩阵提供值

[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]
def结构剂(半径):
内核=np.0((2*半径+1,2*半径+1),np.uint8)
y、 x=np.ogrid[-半径:半径+1,-半径:半径+1]

mask=x**2+y**2谢谢,但是使用此结构元素而不是在MATLAB中创建的结构元素对形态学运算的影响有多大。如果我们想创建一个球形的结构元素呢?Thanks@Navdeep我不确定这会造成多大的副作用。对于自定义形状的结构元素,在OpenCV中,可以查看
CV\u SHAPE\u custom
SHAPE参数。
[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]
def estructurant(radius):
    kernel = np.zeros((2*radius+1, 2*radius+1) ,np.uint8)
    y,x = np.ogrid[-radius:radius+1, -radius:radius+1]
    mask = x**2 + y**2 <= radius**2
    kernel[mask] = 1
    kernel[0,radius-1:kernel.shape[1]-radius+1] = 1
    kernel[kernel.shape[0]-1,radius-1:kernel.shape[1]-radius+1]= 1
    kernel[radius-1:kernel.shape[0]-radius+1,0] = 1
    kernel[radius-1:kernel.shape[0]-radius+1,kernel.shape[1]-1] = 1
    return kernel