ImageJ软件使用教程(三):目标计数
本文以钢筋计数为例,讲解一下如何使用ImageJ软件进行计数,这里只介绍两种方法:
- 多点工具法
- 阀值分割法

钢筋计数是我接触的第一个视觉项目,虽然项目最后不了了之,但作为我机器视觉的开荒项目还是很有纪念意义。
多点工具法
多点工具法适用于数目不多的情况,讲究大力出奇迹,纯手动计数。
右键点工具选择Multi-point Tool激活工具:

双击点工具,设置点的颜色、形状并勾选Label points:

手动点击目标即可计数,按住Alt键点击则可取消该点:

根据最后一个计数可得总共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——指分析颗粒面积大于300(单位是pixel),一直到无穷大的颗粒(正常截面的面积在2000左右,最小值取1000很合理了)。
- Circularity:0.00-1.00——指圆度,1.00为标准圆,一般不需要设置。
- Show:Overlay Masks——在原图显示结果并标记,可以试试其它几种输出效果。
- 勾选
Add to Manager——方便后面把ROI显示到原图。
点击OK弹出计数结果,总计100根钢筋:


显示结果
打开原图,选择Analyze->Tools->ROI Manager:

点击右下角Show All显示结果,根据需要保存图片:

总结
总的来说,多点计数适合数目小的目标计数,而阀值分割法适合数目多的目标计数。不过,如果图片质量比较差的话,使用阈值分割法会比较麻烦。
参考资料
ImageJ软件使用教程(三):目标计数的更多相关文章
- Goland软件使用教程(二)
Goland软件使用教程(二)一.编码辅助功能 1. 智能补全 IDE通过自动补全语句来帮助您来编写代码.快捷键“Ctrl+shift+空格”将会给你一个在当前上下文中最相关符号的列表,当您 ...
- ARM开发软件ADS教程
ARM开发软件ADS教程 ADS(ARM Developer Suite)是ARM公司推出ARM集成开发环境,操作简单方便,获得广大开发人员的青睐.下面使用ADS v1.2做一个实例教程,帮助大家学会 ...
- WPF系列教程——(三)使用Win10 Edge浏览器内核 - 简书
原文:WPF系列教程--(三)使用Win10 Edge浏览器内核 - 简书 在需要显示一些 H5网站的时候自带的WebBrowser总是显示不了,WebBrowser使用的是IE内核,许多H5新特性都 ...
- Goland软件使用教程(一)
Goland软件使用教程(一) Goland是由JetBrains公司旨在为go开发者提供的一个符合人体工程学的新的商业IDE.这个IDE整合了IntelliJ平台的有关go语言的编码辅助功 ...
- GIS基础软件及操作(三)
原文 GIS基础软件及操作(三) 练习三.地图配准操作 1.对无坐标信息的地形图(图片格式)进行地图配准操作2.编辑器的使用(点要素.线要素.多边形要素的数字化) 本例主要介绍如何给无坐标信息的地形图 ...
- RMAN详细教程(三):备份脚本的组件和注释
RMAN详细教程(一):基本命令代码 RMAN详细教程(二):备份.检查.维护.恢复 RMAN详细教程(三):备份脚本的组件和注释 RMAN详细教程(四):备份脚本实战操作 一.基本组件: 1.Ser ...
- 赫然:Windows Live Writer 批量博客更新软件使用教程
http://www.wocaoseo.com/thread-144-1-1.html 推广人员需要使用多个博客,一个一个登陆更新是很麻烦的事情,网上的桌面批量更新博客软件也不少,今天在此推荐大家使用 ...
- 深度学习与CV教程(12) | 目标检测 (两阶段,R-CNN系列)
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...
- 深度学习与CV教程(13) | 目标检测 (SSD,YOLO系列)
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...
- maple软件安装教程
Maple2022适用于Win7/10/11(64位)系统,亲测可用! Maple2022 WIN10 64位安装步骤:1.先使用"百度网盘"下载MPE22_CN_x64安装包到电 ...
随机推荐
- vue配置scss全局样式
安装插件 npm install sass --save-dev 在src文件夹下创建styles文件夹,并创建以下文件 index.scss: scss的入口文件 // 引入清除默认样式 @impo ...
- etcd每个节点都存储了完整的键值对数据集,为什么扩容etcd集群仍可分散存储压力?
etcd每个节点都存储了完整的键值对数据集,这主要是为了确保数据的一致性和高可用性.在这种设计下,任何一个节点都可以处理读取请求,并在本地提供数据,从而无需跨节点通信.这种冗余的数据存储方式也增加了系 ...
- manjaro配置软件源
sudo pacman-mirrors -i -c China -m rank从中选择最快的软件源!
- Oracle数据库中sql查询很快,但在程序中查询较慢的原因和解决方法
代码如下 string sql = "SELECT * FROM LIS_V_LABTESTSAMPLE WHERE PATIENT_ID=:P"; HlsA ...
- day01-数据库的安装和使用
Java数据库的安装和使用 1.数据库的作用 一个问题:淘宝网.京东.微信抖音,都有各自的功能,那么我们退出系统的时候,为什么信息还在? 解决之道-文件,数据库 为了解决上诉问题,使用更加利于管理数据 ...
- linux下几种快速清空文件内容的方法
[root@iamzken ~] : > filename [root@iamzken ~] > filename [root@iamzken ~] echo "" & ...
- 视野修炼第71期 | Rspack 家族新成员 Rsdoctor
欢迎来到第 71 期的[视野修炼 - 技术周刊],下面是本期的精选内容简 强烈推荐 Rspack 新成员:Rsdoctor Bun Shell DCloud:App跨平台框架对比2023版 开源工具& ...
- C++实现常用的文件操作
①输出到文本文件(txt) 1 #include<iostream> 2 #include<fstream> 3 using namespace std; 4 int main ...
- 高校刮起元宇宙风!3DCAT实时云渲染助力川轻化元校园建设
元宇宙,是一个虚拟的网络世界,它与现实世界相互连接,为人们提供了一个身临其境的数字体验.元宇宙的概念并不新鲜,早在上个世纪就有科幻作家和电影导演对它进行了想象和创造.但是,随着科技的发展,特别是5G. ...
- 记录--怎么实现一个3d翻书效果
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本篇主要讨论以下两种翻书动画的实现: 第一种是整页翻转的效果: 这种整页翻转的效果主要是做rotateY的动画,并结合一些CSS的3d属性 ...