细胞个数统计

news2024/12/24 21:43:27

1.1 应用示例目的与思路

(1) 对输入图像进行灰度化、滤波和阈值分割;

(2) 对区域进行填充、连通域分析和面积筛选;

(3) 对区域进行距离变换,对变换后的距离信息图像进行类型转换和图像增强;

(4) 使用分水岭算法提取区域;

(5) 求出区域中重叠的部分,并统计细胞个数。

1.2 应用示例相关算子介绍

(1) binary_threshold(Image : Region : Method, LightDark : UsedThreshold)

功能:使用自动确定的全局阈值分割单通道图像,并在region中返回分割的区域。

图形输入参数:Image:输入图像;

图形输出参数:Region:分割的区域;

控制输入参数1:Method:分割的方法,Method='max_separability',将调用根据Otsu的方法;

控制输入参数2:LightDark:提取前景还是背景;

控制输出参数:UsedThreshold:输出所使用的阈值。

(2) distance_transform(Region : DistanceImage : Metric, Foreground, Width, Height : )              

功能:为输入区域的每个点计算该点到区域边界的距离。

图形输入参数:Region:输入区域;

图形输出参数:DistanceImage:包含距离信息的图像;

控制输入参数:Metric:用于距离变换的度量的类型;

控制输入参数:Foreground:计算输入区域内部(‘true’)或外部(‘false’)像素的距离;

控制输入参数:Width:输出图像的宽度;

控制输入参数:Height:输出图像的高度。

(3) convert_image_type(Image : ImageConverted : NewType : )

功能:图像类型转换。

图形输入参数:Image:输入图像;

图形输出参数:ImageConverted:转换后的输出图像;

控制输入参数:NewType:图像类型。

(4) scale_image_max(Image : ImageScaleMax : : )

功能:直方图均衡化。

图形输入参数:Image:待缩放的图像;

图形输出参数:ImageScaleMax:增强后的图像。

(5) watersheds_threshold(Image : Basins : Threshold : )

功能:使用阈值Threshold从图像Image中提取由分水岭相互分隔的区域(流域)。

图形输入参数:Image:输入图像;

图形输出参数:Basins:输出提取的区域;

控制输入参数:Threshold:分水岭的阈值。 

(6) gen_contour_region_xld(Regions : Contours : Mode : )

功能:从区域中生成XLD轮廓。

图形输入参数:Regions:输入区域;

图像输出参数:Contours:生成的轮廓;

控制输入参数:Mode:生成的轮廓的模式,参数Mode可以有以下值:'center':边界像素的中心用作轮廓点;border:边框像素的外边框用作轮廓点;'border_holes':除了输入区域的外部边界外,还可以获得所有孔的轮廓。

(7) intersection(Region1, Region2 : RegionIntersection : : )

功能:计算Region1中的区域与Region2中的区域的交集。

图形输入参数:Region1:输入区域1;

图形输入参数:Region2:输入区域2;

图形输出参数:RegionIntersection:输出区域。

1.3 应用示例代码


dev_clear_window()
dev_get_window (WindowHandle)
*读取图片
read_image(cell_img,'./Cell-Pictures/cell2.jpg')
get_image_size (cell_img, Width, Height)
*将图像灰度化
rgb1_to_gray(cell_img,cell_gray_img)
*对图像进行滤波
median_image (cell_gray_img,median_cell_img, 'circle',5, 'mirrored')
*进行阈值分割
*自动全局阈值分割,Method=“max_separability”,将调用根据Otsu的方法
binary_threshold (median_cell_img, Region1, 'max_separability', 'dark', UsedThreshold)
*对孔铜进行填充
fill_up(Region1,Region2)
*连通区域分析
connection (Region2, ConnectedRegions)
*面积筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 50, 50000)
*欧式距离函数的距离变换
distance_transform (SelectedRegions, DistanceImage, 'octagonal', 'true', Width, Height)
*int4转byte
convert_image_type (DistanceImage, ImageConverted, 'byte')
*图像取反
invert_image (ImageConverted, ImageInvert)
*图像比例增强 按最大比例增强对比度
scale_image_max (ImageInvert, ImageScaleMax)
*分水岭算法
watersheds_threshold (ImageScaleMax, Basins, 30)
select_shape (Basins, SelectedBasins, 'area', 'and', 2000, 50000)
gen_contour_region_xld (SelectedBasins, Contours, 'border')
*取出两个区域中重叠的部分
intersection (SelectedBasins, SelectedRegions, RegionIntersection)
dev_display(cell_img)
*设置区域的填充方式
dev_set_draw ('margin')
*设置区域轮廓的输出线宽
dev_set_line_width (3)
*显示区域
dev_display (RegionIntersection)
area_center (RegionIntersection, Area, Row, Column)
*设置输出颜色
dev_set_color ('black')
*设置Cross的输出线宽
dev_set_line_width (2)
gen_cross_contour_xld (Cross, Row, Column, 15, 0.785398)
count_obj (RegionIntersection, Number)
*设置字体颜色
dev_set_color ('green')
*设置文字大小
set_display_font (WindowHandle, 30, 'mono', 'true', 'false')
*设置文字位置
set_tposition (WindowHandle, 235, 300)
write_string(WindowHandle, 'count=' + Number)

结果展示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows安装c环境

一. 下载安装mingw-w64 mingw-w64 解压后放到window环境变量路径 sysdm.cpl参看是否安装成功 二. 安装c idea Dev-Cpp下载及安装 新建文件 运行 编译(F9)、运行(F10)以及编译运行(F11) 参考 安装C…

使用 LangChain 和 Elasticsearch 对私人数据进行人工智能搜索

关于本博文的所有代码可以在地址下载:GitHub - liu-xiao-guo/python-vector-private 我将在本博文中其中深入研究人工智能和向量嵌入的深水区。 ChatGPT 令人大开眼界,但有一个主要问题。 这是一个封闭的托管系统。 在一个被大型网络公司改变的世界里生…

代码随想录—力扣算法题:07.链表相交. Java版(示例代码与导图详解)

版本说明 当前版本号[20230923]。 版本修改说明20230923初版 07. 链表相交 同:160.链表相交 力扣题目链接 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示…

C/C++正常血压 2019年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C正常血压 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C正常血压 2019年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 监护室每小时测量一次病人的血压&#x…

链式二叉树的实现及遍历(C语言版)

目录 1 基本概念 1.1 树的概念 1.2 二叉树的链式表示 1.2.1 "左孩子右兄弟"表示法 1.2.2 "左右子树"表示法 1.2.3 手动构建一棵树 2 树的遍历 2.1 前序遍历/先序遍历 2.2 中序遍历 2.3 后序遍历 2.4 层序遍历 2.4.1 算法思想 ​编辑 2.4.2 带头…

堆向上调整及堆向下调整

个人主页:Lei宝啊 愿所有美好如期而遇 前言: 在堆这一节中,孩子和其父节点有如下关系: 左孩子:left_child parent * 2 1; 右孩子:right_child parent * 2 2; 父节点在计算时,因为兄弟…

【Java 基础篇】Java 接口组成与更新详解

在Java编程中,接口(interface)是一种非常重要的概念。它允许类定义一组抽象方法,这些方法可以在不同的类中实现。接口在Java中起到了重要的角色,被广泛应用于代码的组织和设计中。本文将详细解释Java接口的组成和最新的…

C++ - 红黑树 介绍 和 实现

前言 前面 学习了 AVL树,AVL树虽然在 查找方面始终拥有 O(log N )的极高效率,但是,AVL 树在插入 ,删除等等 修改的操作当中非常的麻烦,尤其是 删除操作,在实现当中细节非常多,在实现上非常难掌控…

3、靶场——Pinkys-Place v3(3)

文章目录 一、获取flag41.1 关于SUID提权1.2 通过端口转发获取setuid文件1.3 运行pinksecd文件1.4 利用nm对文件进行分析1.5 构建payload1.6 Fire 二、获取flag52.1 生成ssh公钥2.2 免密登录ssh2.3 以pinksecmanagement的身份进行信息收集2.4 测试程序/usr/local/bin/PSMCCLI2.…

Vue的详细教程--Vue路由与nodejs

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Vue的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Vue路由是什么 二.使用Vue路由的步骤 1、…

【无标题】显示TIFF格式文件

显示TIF文件 运行结果 package src;import com.sun.media.jai.codec.*;import com.sun.media.jai.codec.FileSeekableStream; import com.sun.media.jai.codec.ImageDecoder; import com.sun.media.jai.codec.ImageCodec; import com.sun.media.jai.codec.TIFFEncodeParam; imp…

2010-2017年WIND分省政府性债务余额面板数据

2010-2017年WIND分省政府性债务余额面板数据 1、时间:2010-2017年 2、指标:债务余额 3、范围:30个省 4、来源:wind 5、指标解释:地方政府债务分为一般债务和专项债务。 一般债务对应的是一般公共预算&#xff0c…

操作系统权限提升(三十)之数据库提权-SQL Server sp_oacreate+sp_oamethod(dba权限)提权

SQL Server sp_oacreate+sp_oamethod(dba权限)提权 sp_oacreate+sp_oamethod介绍 在xp_cmdshell被删除或不能利用是可以考虑利用sp_oacreate,利用前提需要sqlserver sysadmin账户服务器权限为system(sqlserver2019默认被降权为mssql)。sp_oacreate 是一个存储过程,可以…

Kubernetes 部署 nfs-subdir-external-provisioner

概述 官方GitHub及参考文档:GitHub - kubernetes-sigs/nfs-subdir-external-provisioner: Dynamic sub-dir volume provisioner on a remote NFS server. 部署nfs-subdir-external-provisioner提供StorageClass服务 步骤 nfs 服务器准备 /etc/exports # cat /etc/exports…

数据链路层--以太网

文章目录 以太网1. 以太网帧格式2. mac地址与IP地址 代表协议:以太网. 以太网 以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访…

laravel框架 - 消息队列如何使用

业务场景:项目里边有很多视频资源需要上传到抖音资源库,通过队列一条一条上传。 参考实例:发送邮件,仅供参考 (1)创建任务【生成任务类】 在你的应用程序中,队列的任务类都默认放在 app/Jobs 目录下。如果这个目录不存…

一款好用的汇编学习工具【compile explore在线编译调试】

登录网址:Compiler Explorer 然后编写代码如下:可以看到,最左边是源代码,中间是汇编,可以选择编程语言和编译链工具,最右边是打印的输出结果,对于汇编指令可右键会弹出汇编指令的解释说明。

十四、ADDA数模转换

十四、AD&DA转换 介绍XTP2046介绍模块代码 模数转换数模转换 介绍 AD:模数转换,将模拟信号转换为计算机可操作的数字信号DA:数模转换,将数字信号转换为模拟信号 XTP2046 介绍 时序 模块代码 #define XPT2046_VBAT 0xAC /…

大数据学习1.0-Centos8虚拟机安装

1.创建新的虚拟机 2.选择稍后安装OS 3.选择Linux的CentOS8 4.选择安装路径 5.分配20g存储空间 6.自定义硬件 7.分配2g内存 8.分配2核处理器 9.选择镜像位置 10.开启虚拟机安装 推荐密码设置为root

全国职业技能大赛云计算--高职组赛题卷②(容器云)

全国职业技能大赛云计算--高职组赛题卷②(容器云) 第二场次题目:容器云平台部署与运维任务1 Docker CE及私有仓库安装任务(5分)任务2 基于容器的web应用系统部署任务(15分)任务3 基于容器的持续…