C# 基于OpenCv的视觉工作流-章8-形态学

C# 基于OpenCv的视觉工作流-章8-形态学

本章目标:
一、获取卷积核;
二、腐蚀;
三、膨胀;
四、闭运算;
五、开运算;
六、形态学梯度;
七、黑帽;
八、顶帽;

形态学是腐蚀与膨胀的反复组合使用,包括了章6腐蚀及章7膨胀,是综合的算子,通过设置不同类型进行不同计算。

一、获取卷积核;

与章6腐蚀相同,不再重复描述。

二、腐蚀;

OpenCv形态学可如下使用:

Mat matDst = new Mat();

Cv2.MorphologyEx(image, matDst, MorphTypes.Erode, matKernel, null, iteration);

其中:参数1,image为输入图像;

参数2,为输出图像;

参数3,为类型(腐蚀、膨胀、闭运算、开运算、形态学梯度、黑帽、顶帽);

参数4,为卷积核;

参数5,为内核的锚点,其默认值为(-1,-1),表示锚点位于内核的中心;

参数6,为计算次数;

腐蚀后,白色区域变小,效果如下。

三、膨胀;

参数3设置为膨胀,膨胀后,白色区域变大,效果如下。

四、闭运算;

参数3设置为闭运算

闭运算=膨胀+腐蚀,即先进行膨胀运算,再进行腐蚀运算。

膨胀会使白色区域变大,侵蚀黑色区域,把黑色区域变小甚至消除,之后再腐蚀,让整体白色区域(轮廓)恢复至原大小。

闭运算后,白色区域中的黑色区域消失,效果如下。

五、开运算;

参数3设置为开运算

开运算=腐蚀+膨胀,即先进行腐蚀运算,再进行膨胀运算。

腐蚀会使白色区域变小甚至消除,之后再膨胀,恢复至原大小。

开运算后,白色小区域消失,效果如下。

六、形态学梯度;

参数3设置为形态学梯度

形态学梯度=原图-腐蚀,腐蚀运算后,白色区域变小,原图白色区域减腐蚀后的白色区域,得到腐蚀掉的部分,即边缘。

形态学梯度后,效果如下。

七、黑帽;

参数3设置为黑帽

黑帽=原图-闭运算,闭运算后,白色区域内部的小黑区域被去掉,原图减闭运算,得到被去掉的小黑区域。

黑帽后,效果如下。

八、顶帽;

参数3设置为顶帽

顶帽=原图-开运算,开运算后,白色小区域被去掉,原图减开运算,得到被去掉的小白色区域。

顶帽后,效果如下。

参考链接

https://www.bilibili.com/video/BV1RFtpeJE6h?spm_id_from=333.788.videopod.episodes\&vd_source=3f9438f03abb9d3e91fda0640164d626\&p=41

"VisionTool 探迹"免费视觉工具

下载地址:https://pan.baidu.com/s/11tktKOSnepLNIEqNbvnv6w?pwd=qv5i

"VisionTool Halcon"付费视觉工具

下载地址:https://pan.baidu.com/s/1v832KTonDYS6oNnWG2iZtQ?

对应系列文章"C# 基于Halcon的视觉工作流",欢迎前往阅读。

上述内容需要一定的技术功底,本章至此已结束,欢迎阅读下章,谢谢!

相关推荐
用户302514728067 分钟前
从对话到行动:用 AIUI 构建「意图驱动」的隐形界面——「言值」AI 表达教练开发实录
人工智能
武子康12 分钟前
工作流 JSON 没变,为什么 ComfyUI 更新后仍可能跑出不同结果?
人工智能·agent
海螺_AIHCC24 分钟前
Agent 能自己调工具之后,安全就不该写在提示词里:一个 200 行拦截器的工程实践
人工智能
写的都是BUG35 分钟前
APK 里的钥匙,一直就放在门口:聊聊加固真正该做什么
前端·算法
加宝的起点雷达38 分钟前
三个定时任务被删那天,系统一声不吭
人工智能·后端
用户3217576683438 分钟前
ComfyUI AI 漫剧本地量产流水线搭建教程|8G 显存本地部署、分镜生成、角色一致性、视频生成
人工智能
荆棘宠物38 分钟前
大模型 API 流式输出的工程细节:SSE 分帧、中断与重试边界
人工智能
神鹰手哥_起飞版39 分钟前
别让大模型写 HTML:一个省 token 的分工实验
人工智能
AI日报派送佬39 分钟前
高效目标检测利器:X-AnyLabeling 加载自定义 YOLO 模型自动标注实操指南
人工智能·yolo·目标检测
猛码象限43 分钟前
【实践随笔】我们在用 AI,还是 AI 在用我们?
人工智能