ImageJ软件使用教程(三):目标计数 - 二次元攻城狮
source link: https://www.cnblogs.com/timefiles/p/18146188
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
本文以钢筋计数为例,讲解一下如何使用ImageJ软件进行计数,这里只介绍两种方法:
- 多点工具法
- 阀值分割法
钢筋计数是我接触的第一个视觉项目,虽然项目最后不了了之,但作为我机器视觉的开荒项目还是很有纪念意义的。
多点工具法#
多点工具法适用于数目不多的情况,讲究大力出奇迹,纯手动计数。
右键点工具选择Multi-point Tool
激活工具:
双击点工具,设置点的颜色、形状并勾选Label points
:
根据最后一个计数可得总共100根,也可以通过Analyze
->Measure
查看计数结果和标注点的坐标:
如果想把标注点保存在图片中,可以利用Image
->Overlay
->Flatten
创建原始数据的一个副本,最后保存后的副本图片会存有标注点。
阀值分割法#
阀值分割法适用于数目较多的情况,全自动化计数,相应的图片预处理会比较麻烦。
二值化#
先打开图片,执行以下预处理操作:
- 点击
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显示到原图。
显示结果#
打开原图,选择Analyze
->Tools
->ROI Manager
:
总结#
总的来说,多点计数适合数目小的目标计数,而阀值分割法适合数目多的目标计数。如果图片质量比较差的话,使用阈值分割法会比较麻烦。
参考资料#
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK