首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么OpenCV中的结构元素是不对称的?

为什么OpenCV中的结构元素是不对称的?
EN

Stack Overflow用户
提问于 2017-12-04 14:31:57
回答 1查看 1.3K关注 0票数 4

为什么OpenCV中的结构元素是不对称的?

代码语言:javascript
运行
复制
cv2.getStructuringElement(cv2.MORPH_ELLIPSE, ksize=(4,4))

返回

代码语言:javascript
运行
复制
array([[0, 0, 1, 0],
       [1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1]], dtype=uint8)

为什么不

代码语言:javascript
运行
复制
array([[0, 1, 1, 0],
       [1, 1, 1, 1],
       [1, 1, 1, 1],
       [0, 1, 1, 0]], dtype=uint8)

而不是?

对于90度旋转,奇数大小的结构元素也是不对称的:

代码语言:javascript
运行
复制
array([[0, 0, 1, 0, 0],
       [1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1],
       [0, 0, 1, 0, 0]], dtype=uint8)

那是什么目的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-04 15:20:49

对于这样的形状,除了它是许多可能的插值之一之外,没有别的用途。对于大小为5的椭圆,如果它是满的,它将只是相同的MORPH_RECT和如果相同的两个被从侧面从顶部移除,它将是一个钻石。不管是哪种方式,实际实现在源代码中的方式都是你所期望的--它通过距离函数创建了一个圆圈,并且需要接近整数才能得到二进制像素。搜索该文件中的cv::getStructuringElement,您就会发现实现,它没有什么特别之处。

如果您认为应该对这个函数进行更新,那么在GitHub上打开一个带有已实现版本的PR,或者先讨论一下这个问题。我认为成功的贡献在这里是容易的,我敢说对称的理由是有力的。人们会期望用椭圆核处理对称图像的结果不会取决于图像的方向。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47635612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档