码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ImageJ软件使用教程(三):目标计数


    目录
    • 多点工具法
    • 阀值分割法
      • 二值化
      • 填充分割
      • 自动计数
      • 显示结果
    • 总结
    • 参考资料

    本文以钢筋计数为例,讲解一下如何使用ImageJ软件进行计数,这里只介绍两种方法:

    • 多点工具法
    • 阀值分割法

    image

    钢筋计数是我接触的第一个视觉项目,虽然项目最后不了了之,但作为我机器视觉的开荒项目还是很有纪念意义的。

    多点工具法#

    多点工具法适用于数目不多的情况,讲究大力出奇迹,纯手动计数。
    右键点工具选择Multi-point Tool激活工具:
    image

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

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

    根据最后一个计数可得总共100根,也可以通过Analyze->Measure查看计数结果和标注点的坐标:
    image

    如果想把标注点保存在图片中,可以利用Image->Overlay->Flatten创建原始数据的一个副本,最后保存后的副本图片会存有标注点。

    阀值分割法#

    阀值分割法适用于数目较多的情况,全自动化计数,相应的图片预处理会比较麻烦。

    二值化#

    先打开图片,执行以下预处理操作:

    • 点击Image->Type->8-bit,将图片转为灰度图
    • 点击Image->Adjust->Threshold,调节阀值
    • 点击Apply即可得到二值化后的图片

    image

    软件会自动给一个合适的阀值,适当调节阀值不要让横截面完全断开即可,横截面粘连和细小干扰项留到后面处理。

    填充分割#

    二值化后,部分横截面存在空隙或粘连现象,可以通过以下操作进行处理:

    • 选择 Process->Binary->Fill Holes填补截面空隙
    • 选择 Process -> Binary -> Erode 腐蚀边缘毛刺
    • 通过 Process->Binary->Watershed打断重叠部分

    image

    第二步的腐蚀操作是为了去除毛刺,降低第三步打断的难度,大约腐蚀两次左右即可。

    自动计数#

    先随便选取一个截面大概测试一下面积,这一步很重要,可以根据这个面积值过滤掉一些细小的干扰项。
    测量结果如下,截面面积大概在2000个像素左右:
    image

    选择Analyze->Analyze Particles打开窗口,设置Size和Show:
    image

    • Size:1000-Infinity——指分析颗粒面积大于1000(单位是pixel),一直到无穷大的颗粒。
    • Circularity:0.00-1.00——指圆度,1.00为标准圆,一般不需要设置。
    • Show:Overlay Masks——在原图显示结果并标记,可以试试其它几种输出效果。
    • 勾选Add to Manager——方便后面把ROI显示到原图。

    点击OK弹出计数结果,总计100根钢筋:
    image

    image

    显示结果#

    打开原图,选择Analyze->Tools->ROI Manager:
    image

    点击右下角Show All在原图上显示结果:
    image

    总结#

    总的来说,多点计数适合数目小的目标计数,而阀值分割法适合数目多的目标计数。如果图片质量比较差的话,使用阈值分割法会比较麻烦。

    参考资料#

    • 【技术干货】超快速度完成细胞计数
    • 『零基础』ImageJ + 机器学习图像处理
    • ImageJ实用技巧——自动细胞计数(解放双手篇)
  • 相关阅读:
    第三十七章 构建数据库应用程序 - 在页面上使用对象
    锁升级过程(无锁、偏向锁、轻量级锁、重量级锁)
    区块链浏览器与合约代码
    单链表相关面试题--4.输入一个链表,输出该链表中倒数第k个结点
    【MySQL 第十四天 数据库用户管理|日志管理|备份和恢复|数据表的导出和导入】
    基于Keil a51汇编 —— 标准宏定义
    软件设计模式(三):责任链模式
    每日一题leetcode--删除并获得点数(DP)
    DOM的增删改
    大数据学习(9)-hadoop集群计算速度影响因素
  • 原文地址:https://www.cnblogs.com/timefiles/p/18146188
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号