杰林码在荧光细胞识别中的应用(一)

news2024/11/18 7:50:15

一、杰林码轮廓预测算法

本算法是基于我的《一种全新的图像变换理论的实验》系列博客中的算法构造的轮廓预测算法,能有效的进行细胞轮廓预测,而且从前景到背景支持50个深度层次的轮廓预测。优点:
1、支持各种清晰度和分辨率,通过调整深度层次即可;
2、效率高,算法自主,不是任何 snack、等高线、四叉树等算法;
3、结合聚类算法或分类算法能实现有效识别。

(1)调用方法

int main() { // 3
	ULONGLONG t1, t2;
	int err;
	BmpImage* img;
	unsigned char* outputBytesArray = NULL;
	char url1[200], url2[200];
	int contour_size = 32;  // 轮廓预测范围
	int jielin_ratio = 21;  // 杰林码系数

	const char* fileName = "xibao";

	sprintf_s(url1, 200, "D:\\WJLCoding\\C++\\AI\\WJL Contour Prediction\\TestImage\\%s.bmp", fileName);
	sprintf_s(url2, 200, "D:\\WJLCoding\\C++\\AI\\WJL Contour Prediction\\NewImage\\ContourPrediction-%s-%d-%d.bmp", fileName, contour_size, jielin_ratio);

	// 装载BMP,采用灰度图像
	img = LoadBmpImage(url1);
	outputBytesArray = (unsigned char*)malloc(sizeof(unsigned char) * img->bmpInfoHeader.biWidth * img->bmpInfoHeader.biHeight);
	if (outputBytesArray == NULL) {
		return 0;
	}
	// outputBytesArray全部设置为OxFF
	memset(outputBytesArray, 0xFF, img->bmpInfoHeader.biWidth * img->bmpInfoHeader.biHeight);

	// 灰度图像轮廓预测
	t1 = GetTickCount64();
	err = WJL_GRAY_CONTOUR_PREDICTION(img->bmpInfoHeader.biWidth, img->bmpInfoHeader.biHeight, contour_size, jielin_ratio, img->rgbdatas->ucR, outputBytesArray);
	t2 = GetTickCount64();
	// 耗时
	printf("变换算法总耗时:%lld ms\n", t2 - t1);

	// 释放原始的img->rgbdatas->ucR
	if (img->rgbdatas->ucR) free(img->rgbdatas->ucR);
	// 重新指定
	img->rgbdatas->ucR = outputBytesArray;
	// 然后写入到文件url2中
	err = SaveBmpImage(url2, img);
	// 释放
	if (img->rgbdatas->ucR) free(img->rgbdatas->ucR);
	if (img->rgbdatas) free(img->rgbdatas);
	if (img) free(img);

	system("pause");
	return 0;
}

(2)函数接口和参数说明

#ifndef _WJLCONTOURPREDICTION_H
#define _WJLCONTOURPREDICTION_H

#ifdef	__cplusplus
extern "C" {
#endif

	/****************************************************************************************************************
	标记出图像中图形的轮廓
	输入参数width:灰度图像的宽
	输入参数height:灰度图像的高
	输入参数contour_size:轮廓预测的半径,为0则不进行轮廓预测
	输入参数jielin_ratio:杰林码系数
	输入参数inputBytesArray:灰度图像的数据
	输入参数outputBytesArray:灰度图像的数据
	返回报错值,0表示无错误
	*****************************************************************************************************************/
	int WJL_GRAY_CONTOUR_PREDICTION(long width, long height, int contour_size, int jielin_ratio,  unsigned char* inputBytesArray, unsigned char* outputBytesArray);


#ifdef	__cplusplus
}
#endif

#endif

二、实验一

杰林码系数设定为21(0表示最前景,50表示最背景),轮廓预测范围32,效果如下:
在这里插入图片描述
杰林码系数设定为35,轮廓预测范围32,效果如下:

在这里插入图片描述
杰林码系数设定为15,轮廓预测范围32,效果如下:
在这里插入图片描述

三、实验二

杰林码系数设定为15,轮廓预测范围32,效果如下:
在这里插入图片描述
杰林码系数设定为19,轮廓预测范围32,效果如下:
在这里插入图片描述
在这里插入图片描述
我还测试了真菌、滴虫,均能有效的把图像轮廓获取,根据实际情况需要调整杰林码系数。该算法将在国产细胞扫描仪中应用。并结合加权概率模型聚类算法一同实现识别。
未来应用场景:
1、工业机器识别,如指纹、产品质量检测等等;
2、大型图像识别模型;
3、图像轮廓清晰化处理;
等等。

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

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

相关文章

this关键字

1. 关键字:this 1.1 this 是什么? 首先。this在Java中是一个关键字,this 指代的是本类的引用对象 1.2 什么时候使用 this 1.2.1 实例方法或构造器中使用当前对象的成员 1、在实例方法或构造器中,我们在使用get和set方法中使用…

年化33.8%,夏普1.22:lightGBM在ETF行业模动上小试牛刀(附代码下载)。

原创文章第240篇,专注“个人成长与财富自由、世界运作的逻辑与投资"。 今天做排序学习算法在ETF行业轮动上的策略,我们选用的DBDT框架是lightGBM,它的优点就是快且效果不错。 我们的候选集是29个行业ETF: etfs [159870.S…

Python编程:标准库logging使用

Python编程:标准库logging使用 一、 基础使用 1.1 logging使用场景 ​ 日志是什么?这个不用多解释。百分之九十的程序都需要提供日志功能。Python内置的logging模块,为我们提供了现成的高效好用的日志解决方案。但是,不是所有的…

python爬虫——怎么抓取职位信息

目录 背景 为什么要抓取职位信息 怎么抓取职位信息 代码示例 被反爬怎么办 使用代理IP进行爬取 总结 背景 高考刚结束,马上又到了大学生毕业的时候了,各大厂也开始了一波招工潮了,想知道大厂或竞争对手都招些什么人,有什么…

来了解一下这几个网络设备日志级别分别都适用在何种场景?

在华为设备中,涉及到日志的,我们经常会在日志级别上迷糊,本文就给大家介绍8种日志级别以及每个级别适用的场景。 1. Emergency(紧急) 紧急级别的日志是指最高级别的日志,表示系统遇到了严重的错误或故障&…

JMeter+Ant+jenkins搭建接口自动化测试环境

目录 前言: 1.ant简介 2. 构建ant环境 3.JMeter与Ant集成 4. 报告优化 5.jenkins持续集成 前言: JMeter是一个开源的性能测试工具,可以用于测试Web应用程序或API接口的性能,支持多种通信协议和数据格式。Ant是一个构建工具&…

ui自动化 SeleniumBase

目录 前言: git克隆 校验邮件的案例: 注意事项: 前言: SeleniumBase是一个基于Selenium WebDriver的Python框架,用于UI自动化测试。它具有简单易用的API接口,可轻松编写测试脚本以及管理测试用例。SeleniumBase不仅提供了Web…

【LeetCode】HOT 100(10)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

5月总共面试31次,我人麻了....

3年测试经验原来什么都不是,只是给你的简历上画了一笔,一直觉得经验多,无论在哪都能找到满意的工作,但是现实却是给我打了一个大巴掌!事后也不会给糖的那种... 先说一下自己的个人情况,普通二本计算机专业…

华为OD机试真题 JavaScript 实现【寻找密码】【2023Q1 100分】,附详细解题思路

一、题目描述 小王在进行游戏大闯关,有一个关卡需要输入一个密码才能通过,密码获得的条件如下: 在一个密码本中,每一页都有一个由 26 个小写字母组成的若干位密码,从它的末尾开始依次去掉一位得到的新密码也在密码本…

母线保护(4)

4、母联死区保护 在各种母差保护中,存在一个共同的问题,就是死区问题。 如图,在母联合位时,当故障发生在母联断路器与母联CT之间时,故障电流由II母流向I母,I母小差有差流,判断为I母故障&#x…

yum安装nginx

Nginx介绍 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好&…

电脑提示由于找不到vcomp140.dll无法继续执行代码怎么修复呢?这个三个方法可以帮到你

在我们打开游戏或者获取软件的时候,点击电脑提示由于找不到vcomp140.dll无法继续执行代码需要怎么办呢?vcomp140.dll是什么呢?相信困扰着不少小伙伴,vcomp140.dll是Microsoft Visual C Redistributable中的一个动态链接库文件&…

牛客网Java面试题及答案整理(2023年秋招最新版,持续更新)

学习如逆水行舟,尤其是 IT 行业有着日新月异的节奏,我们更要抓紧每一次可以学习和进步的机会。所以,没有撤退可言。 即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装…

基于Java高校专业信息管理系统设计与实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

Spring Security--会话管理

就像登录qq一样,一个手机登录会将另外一个手机挤下线,这个就叫会话管理。 这个东西非常简单,在默认情况下可以登录n多次,一旦开启,就不允许登录多个。 什么是一个会话。 我们简单理解就是一个浏览器的同一个用户算一…

Redux 异步解决方案2. Redux-Saga中间件

利用Generator特性实现异步 因为Generator。结合yield yield操作符会获取右边表达示的值返回 可以用于异步变同步操作 中间件的特性: 以前的 action -> reducers -> store 现在的 action -> middleware -> reducers -> store 注意: reducer的type…

群晖云同步失败?一直卡在连接中怎么办?

群晖云同步是群晖NAS的一款基于网络的数据备份和同步服务,它可以帮助我们在不同设备之间轻松地同步文件、照片、文档等,并且支持自动化执行同步备份任务,让您的数据存储更加安全。 虽然群晖云同步能给我们带来很多便利,但是在…

yolov5 6.1 关于 tensorrt 加速的使用以及问题说明

文章目录 1. 参考连接2. 使用说明2.1 导出加速模型2.1 使用加速模型2.2 加速参数对比 3. 问题说明3.1 在 Tensorrt 8.4.1.5 版本上使用 export.py 导出失败的问题3.2 把模型文件由 best.pt 更换成加速后的 best.engine 后,执行推理时标注的类别名不正确的问题3.3 导…

面向教育机构的IT管理

多年来,高等教育见证了一些惊人的技术创新,包括远程学习、VR 和 AR 实验室、物联网等。随着技术席卷高等教育领域,机构有望高度依赖其技术基础设施,将学生的想法变为现实,以支持学习渠道并促进研究和合作。 另一方面&…