- 多点工具法
-
阀值分割法
- 二值化
- 填充分割
- 自动计数
- 显示结果
- 总结
- 参考资料
本文以钢筋计数为例,讲解一下如何使用ImageJ软件进行计数,这里只介绍两种方法:
- 多点工具法
- 阀值分割法
钢筋计数是我接触的第一个视觉项目,虽然项目最后不了了之,但作为我机器视觉的开荒项目还是很有纪念意义。
多点工具法
多点工具法适用于数目不多的情况,讲究大力出奇迹,纯手动计数。
右键点工具选择Multi-point Tool
激活工具:
双击点工具,设置点的颜色、形状并勾选Label points
:
手动点击目标即可计数,按住Alt
键点击则可取消该点:
根据最后一个计数可得总共100根,也可以通过Analyze
->Measure
查看计数结果和标注点的坐标:
如果想把标注点保存在图片中,可以利用Image
->Overlay
->Flatt服务器托管en
创建原始数据的一个副本,最后保存后的副本图片会存有标注点。
阀值分割法
阀值分割法适用于数目较多的情况,全自动化计数,相应的图片预处理会比较麻烦。
二值化
先打开图片,执行以下预处理操作:
- 点击
Image
->Type
->8-bit
,将图片转为灰度图 - 点击
Image
->Adjust
->Threshold
,调节阀值 - 点击
Apply
即可得到二值化后的图片
软件会自动给一个合适的阀值,适当调节阀值不要让横截面完全断开即可,横截面粘连和细小干扰项留到后面处理。
填充分割
二值化后,部分横截面存在空隙或粘连现象,可以通过以下操作进行处理:
- 选择
Process
->Binary
->Fill Holes
填补截面空隙 - 选择
Process
->Binary
->Erode
腐蚀边缘毛刺 - 通过
Process
->Binary
->Watershed
打断重叠部分
第二步的腐蚀操作是为了去除毛刺,降低第三步打断的难度,大约腐蚀两次左右即可。
自动计数
先随便选取一个截面大概测试一下面积,这一步很重要,可以根据这个面积值过滤掉一些细小的干扰项。
测量结果如下,截面面积大概在2000个像素左右:
选择Analyze
->Analyze Particles
打开窗口,设置Size
和Show
:
- Size:1000-Infinity——指分析颗粒面积大于1000(单位是pixel),一直到无穷大的颗粒。
- Circularity:0.00-1.00——指圆度,1.00为标准圆,一般不需要设置。
- Show:Overlay Masks——在原图显示结果并标记,可以试试其它几种输出效果。
- 勾选
Add to Manager
——方便后面把ROI显示到原图。
点击OK
弹出计数结果,总计100根钢筋:
显示结果
打开原图,选择Analyz服务器托管e
->Tools
->ROI Manager
:
点击右下角Show All
在原图上显示结果:
总结
总的来说,多点计数适合数目小的目标计数,而阀值分割法适合数目多的目标计数。如果图片质量比较差的话,使用阈值分割法会比较麻烦。
参考资料
- 【技术干货】超快速度完成细胞计数
- 『零基础』ImageJ + 机器学习图像处理
- ImageJ实用技巧——自动细胞计数(解放双手篇)
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 天天用defineEmits宏函数,竟然不知道编译后是vue2的选项式API?
前言 我们每天都在使用 defineEmits 宏函数,但是你知道defineEmits 宏函数经过编译后其实就是vue2的选项式API吗?通过回答下面两个问题,我将逐步为你揭秘defineEmits 宏函数的神秘面纱。为什么 Vue 的 defineEmit…