dyn_threshold
//采用系统自带图片
read_image (Image, 'particle')
*获取图像
dev_display (Image)
*显示图像
threshold (Image, Large, 110, 255)
*灰度阈值分割图像
dilation_circle (Large, LargeDilation, 7.5)
*圆角膨胀
dev_display (Image)
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('red')
dev_display (LargeDilation)
dev_set_draw ('fill')
*显示图像
complement (LargeDilation, NotLarge)
*返回补充图像,即获得去除大斑点后的图像NotLarge
reduce_domain (Image, NotLarge, ParticlesRed)
*减去除了NotLarge图像,即去除大斑点后的图像,减少运算
mean_image (ParticlesRed, Mean, 31, 31)
*平滑处理图像
dyn_threshold (ParticlesRed, Mean, SmallRaw, 3, 'light')
*选择灰度阈值;网友详解:当前背景之间差异明显时,可以设定全局阈值进行threshold,但很多情况下由于背景不均一,
*目标体经常表现为比背景局部亮一些或暗一些,无法确定全局阈值操作,需要通过其邻域找到一个合适的阈值进
*行分割。ThresholdImage是参考图像,通过与OrigImage对比找到领域确定阈值,一般采用平滑滤波算子
*(如mean_image)获取参考图像。offset设定邻域比较的区间范围,灰度值变化在offset范围内均是可以接受的。
opening_circle (SmallRaw, Small, 2.5)
*消除小区域(小于圆形结构元素)和光滑的边界地区
connection (Small, SmallConnection)
*显示联通区域
dev_display (Image)
*这句不加窗口显示效果会有雪花
dev_set_colored (12)
dev_display (SmallConnection)
*显示结果图像
手册里面的particle例子,例子的任务是分析颗粒在液体中。在这个应用程序的主要困难:存在两种类型的对象:大明亮物体和较低的小物体的对比。此外噪音使分割的存在困难;无法使用全局灰度阈值threshold进行分割;所以采用先将大块不需要检测的部分去除掉,再通过灰度动态阈值dyn_threshold分割图像得到想要的内容。
参考:https://www.pianshen.com/article/93601894439/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述