达到阈值自动执行的工具类

C#halcon联合开发----普通阈值分割与自动阈值分割的封装 2,如果Def._Segment是BinaryThreshold,调用HOperatorSet.BinaryThreshold方法,使用参数Def._SegmentMothd和Def._LightOrDark作为分割方法和光暗模式,并将结果保存在输出图像Region中。这里是写一个静态方法,用于读取图像文件,并在窗口中显示图像。1,如果Def._Segment是Threshold,调用HOperatorSet.Threshold方法,使用参数Def._MinGray作为阈值进行图像分割。 阅读详情

设计思路及代码
将执行逻辑与计数逻辑封装到ThresholdCounter,而不是耦合在ThresholdCounterTest业务代码中

package xyz.yq56.easytool.utils;

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

import lombok.extern.slf4j.Slf4j;

/**
 * @author yiqiang
 * @date 2022/11/22 14:45
 */
@Slf4j
public class ThresholdCounterTest {

    private ThresholdCounterTest() {
    }


    public static void main(String[] args) {
        ThresholdCounter counter = new ThresholdCounter(2,
                                                        () -> log.info("执行逻辑"));

        List<String> roomIds = Arrays.asList("1", "5", "6");

        for (int i = 0; i < roomIds.size(); i++) {
            log.info("当前: " + (i + 1));
            counter.incr();
        }
    }

    /**
     * 计数器,达到阈值就执行
     */
    public static class ThresholdCounter {

        private final AtomicInteger count = new AtomicInteger(0);

        private final int threshold;

        Processor processor;

        public ThresholdCounter(int threshold, Processor processor) {
            this.threshold = threshold;
            this.processor = processor;
        }

        public void incr() {
            incr(1);
        }

        public void incr(int delta) {
            int nowCount = count.addAndGet(delta);
            if (nowCount == threshold) {
                log.info("ThresholdCounter | 达到阈值,自动执行 | newCount: {},threshold: {}",
                         nowCount, threshold);
                processor.process();
            }
        }
    }

    @FunctionalInterface
    interface Processor {
        /**
         * 执行
         */
        void process();
    }

}

运行结果

03:24:28.225 [main] INFO xyz.yq56.easytool.utils.ThresholdCounterTest - 当前: 1
03:24:28.227 [main] INFO xyz.yq56.easytool.utils.ThresholdCounterTest - 当前: 2
03:24:28.227 [main] INFO xyz.yq56.easytool.utils.ThresholdCounterTest$ThresholdCounter - ThresholdCounter | 达到阈值,自动执行 | newCount: 2,threshold: 2
03:24:28.228 [main] INFO xyz.yq56.easytool.utils.ThresholdCounterTest - 执行逻辑
03:24:28.228 [main] INFO xyz.yq56.easytool.utils.ThresholdCounterTest - 当前: 3
Android自动dump hprof文件的功能实现 要实现这个功能,必须提升权限,必须满足以下两个条件之一 1、在root的设备上运行 2、如果机子没root,需要在app的manifest文件中添加sharedUid,但是使用了这个的话,需要对apk文件进行系统签名 android:sharedUserId="android.uid.shell" 【步骤1】先准备一个工具类,用于获取进程的内存,dump hrpof文件等操作,代码 阅读详情

相关推荐

数字图像处理11:阈值分割(基本全局阈值处理,Otsu 的最佳全局阈值,图像平滑改善全局阈值处理,图像分块的可变阈值)

阈值分割 从背景中提取物体的一种明显方法是,选择一个将这些模式分开的阈值 T。然后,f(x,y)>Tf(x,y)>Tf(x,y)>T的任何点 (x, y) 称为个对象点,否则该点称为背景点。 灰度阈值的成功与否直接关系到可区分直方图模式的波谷的宽度和深度。 而影响波谷特性的关键因素有以下几点: (1)波峰间的间隔 (波峰离得越远,分离这些模式的机会越大); (2)图像中的噪声内容 (模式随噪声的增加而展宽); (3)物体和背景的相对尺寸; (4)光源的均匀性; (5)图像反射特性的均匀性。

wcx0602的博客 3万+

HarmonyKit | 时间戳转换:自动识别秒/毫秒与双向转换器实现

HarmonyKit时间戳转换工具解决了开发中常见的时间戳单位混淆问题,通过智能阈值算法自动识别秒/毫秒时间戳。核心实现采用100亿为分界值,确保1970年至2286年间的时间戳能被准确识别。工具分为确定性转换的底层工具类和负责意图解析的页面层,支持双向转换(时间戳↔日期)并可选显示毫秒。UI设计分为独立的功能区块,提供当前时间戳快捷输入按钮,简化开发者工作流程。该方案覆盖99%实际场景,有效避免因时间戳单位错误导致的日期偏差问题。 项目地址:https://atomgit.com/VON-/harmony

欢迎大家一起讨论交流 146

OpenMV自动采集颜色阈值方法设置

Openmv的一种自动采集颜色阈值的方法

长空有风 3738

【OpenCV】图像阈值

图像阈值化(Thresholding)是计算机视觉和图像处理中的一种基本技术,它将灰度图像转换为二值图像。通过设定一个或多个阈值,可以将像素点分为不同的类别,例如前景和背景。OpenCV 提供了多种方法来进行图像的阈值处理,这些方法可以根据具体的任务需求选择最合适的算法。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 8555

Halcon-常用阈值分割方法总结

本文主要阐述halcon中较为常见的几种分割算子 引言 halcon中分割算子: (1)全局阈值分割: threshold(Image : Region : MinGray, MaxGray : ) 该算子适用于环境稳定,光照变化不大,目标与背景存在明显的灰度差的场合,根据灰度直方图确定阈值进行图像分割。 read_image (Image, 'clip') gray_histo (Image, Image, AbsoluteHisto, RelativeHisto) gen_region_histo (R

晨曦的博客 7483

Otsu阈值分割详解

从L个灰度级遍历 t,使得 t 为某个值的时候,前景和背景的方差最大,则 这个 t 值便是我们要求得的阈值。由于Otsu算法是对图像的灰度级进行聚类,因此在执行Otsu算法之前,需要计算该图像的灰度直方图。图像总平均灰度为: u = w0∗u0 + w1∗u1。

Protinx的博客 5090

数据库统计信息更新策略:自动更新阈值调整、手动分析命令执行及执行计划稳定性保障的操作步骤

本文探讨了数据库统计信息更新策略及其对执行计划优化的影响。文章从三个维度展开:首先介绍了自动更新阈值的调整方法,包括了解默认配置、分析业务特征和设置合理参数;其次阐述了手动分析命令的执行场景、命令选择和操作流程;最后提出了保障执行计划稳定性的措施,如执行计划绑定和监控机制。文章强调需要结合业务场景制定分层统计更新策略,并建议建立持续监控体系,通过团队协作不断优化策略,以确保数据库获得最佳性能。

yvysh16116的博客 1127

Halcon 阈值算子汇总

halcon有多种阈值分割的算子,其形式各不相同,而作用也不同,这里将它们集中起来注释,以方便查阅、对照和编程。

gongdiwudu的专栏 9092

halcon阈值分割

1. threshold(Image : Region : MinGray, MaxGray : ) 全局阈值分割,适用于环境稳定,目标与背景存在明显的灰度差的场合。 应用一 利用灰度直方图确定阈值进行图像分割。一般是物体与背景之间存在一个明显的灰度差,直方图会存在两个波峰一个是目标一个是背景,那么阈值就是物体与背景之间的最小值。 read_image (Image, 'clip') gr...

qq_29187197的博客 1万+

新版股票配资系统源码/股票分析系统技术方案

新版股票配资系统;全套源码支持新股申购功能,包含C#+MySQL开发的后台系统及Spring框架,采用C/S架构。注意:本源码仅限技术学习、功能测试及模拟交易使用,严禁用于非法用途,违者责任自负。

q318136906的博客 1651

保姆级教程:从SolidWorks建模到Ansys结果分析,手把手完成BGA焊点热应力与振动仿真

本文提供从SolidWorks建模到Ansys Workbench仿真的BGA焊点热应力与振动分析全流程指南。详细讲解参数化建模、材料定义、网格划分、热-机耦合载荷设置等关键技术,帮助工程师掌握BGA焊点可靠性仿真分析的核心方法,有效预测热循环与振动条件下的失效风险。

weixin_33483304的博客 378

halcon——常见阈值分割总结

引言 主要讲述几种halcon中经常用到的一些阈值分割算子。 1,全局阈值分割 threshold(Image : Region : MinGray, MaxGray : ) 全局阈值分割,适用于环境稳定,目标与背景存在明显的灰度差的场合。(即根据高低双阈值将图像分为前景和背景) 利用灰度直方图确定阈值进行图像分割。一般是物体与背景之间存在一个明显的灰度差,直方图会存在两个波峰一个是目标一...

明月清风@的博客 1198

创客学院嵌入式驱动开发——学习资料汇总

1.创客学院知识巩固-01C语言回顾_C/C++_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431050 2.创客学院知识巩固-02数据结构_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431087 3.创客学院知...

snaking616 5118

halcon阈值方式

threshold(Image : Region : MinGray, MaxGray : ) 全局阈值分割,适用于环境稳定,目标与背景存在明显的灰度差的场合。 binary_threshold(Image : Region : Method, LightDark : UsedThreshold) 自动全局阈值分割,主要对灰度直方图存在两个波峰图像的自动阈值分割。 dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, Lig.

远在远方的风比远方更远 1262

用ESP32-S3+OV2640摄像头+ILI9488屏,DIY一个能联网的智能猫眼(附完整代码)

本文详细介绍了如何利用ESP32-S3微控制器搭配OV2640摄像头和ILI9488显示屏,DIY一个功能强大的智能猫眼系统。从硬件选型、电路设计到软件开发,提供了完整的解决方案和优化技巧,包括图像采集显示、WiFi远程访问及低功耗设计,适合智能家居爱好者动手实践。

weixin_30897233的博客 502

OpenClaw 企业级自动化系统架构设计与实现

本文介绍基于 OpenClaw 构建的企业级自动化系统的完整架构设计、技术选型、实现细节和性能优化方案。

2604_95445636的博客 485

8-OpenCVSharp--常见阈值分割算法使用方法(全局阈值分割、自适应阈值分割、Otsu 阈值分割、双阈值分割)

阈值分割算法在图像处理中的应用非常广泛,它们可以根据不同的图像特性(如光照变化、背景复杂度等)选择不同的阈值分割方法。

weixin_45590420的博客 2141

基于STM32、HAL库的ZMOD4510AI4R气体传感器驱动程序设计

ZMOD4510AI4R是Renesas公司推出的一款数字空气质量传感器,主要用于检测臭氧(O₃)和总挥发性有机化合物(TVOC)浓度。(status & 0x80)) // 检查数据就绪位。// 等待测量完成 (实际应用中应该使用非阻塞方式)// 转换为ppb (简化转换,实际应根据传感器文档校准)* @param hzmod: ZMOD4510句柄。* @param tvoc: TVOC浓度(ppb)* @param ozone: 臭氧浓度(ppb)* @param hi2c: I2C句柄。

corlin6688的博客 312

OpenCV中Canny阈值自动计算方案(基于Sobel梯度的智能分割)

解决边缘检测难题,本文详解OpenCV的Canny边缘检测阈值自动计算方法。基于Sobel梯度统计实现智能图像分割,适用于复杂光照场景,提升检测精度与稳定性。算法简洁高效,值得收藏。

FuncIsle的博客 1164

CTR-GCN 论文解读

提出了一种信道拓扑优化图卷积,该卷积可以动态有效地对信道拓扑进行建模。共享拓扑是一个参数化的邻接矩阵,作为所有通道的拓扑先验,并提供顶点之间的一般相关性。通过使用特定于通道的相关性细化共享拓扑,CTR-GC 获得了通道拓扑。

一杯水果茶!足矣~ 3089

【STM32系统】基于STM32+手机APP设计的智能停车场系统

功能简介1、进出停车场时需要刷卡,进行一个记时、计费的功能。2、停车位配有超声波检测,主要识别车位是否被占用。3、车位区域配有OLED显示屏,用户可以通过显示屏看到空闲车位。4、车位配有车位灯。当用户找不到车位可以通过手机点亮车位灯5、停车场配有温湿度检测和烟雾检测模块。当环境发生异常状态。会触动紧急报警。6、停车场信息会通过Wi-Fi发送数据上传至阿里云。用户可以通过手机了解到停车场空闲车位和停车时间、费用。

嵌入式阿齐Archie 2万+

Halcon阈值分割方法简析

1. 基于直方图的自动阈值分割 1.1 例程详解 dev_close_window () read_image (Aegypt1, 'egypt1') get_image_size (Aegypt1, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowID) set_display_font (WindowID, 14, 'mono', 'true', 'false') dev_set_colored (6) dev_cl

baidu_35536188的博客 1477

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SQL Server 统计信息更新:自动更新阈值调整与查询性能影响

SQL Server 的自动更新统计信息阈值(默认 $20%$)是平衡资源开销和查询性能的核心机制。调整它(如禁用自动更新或增加手动更新频率)可优化性能,但需谨慎:阈值过高可能导致计划次优化,阈值过低增加系统负载。通过监控、测试和维护计划,您可以找到最佳平衡点。实践中,建议结合数据库负载模式(如 OLTP vs. OLAP)进行定制化设置。如果有具体场景(如表大小或查询类型),可进一步分析!

2501_93877833的博客 1738

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

基本全局阈值处理

基本全局阈值处理 选取阈值的一种方法就是图像直方图的视觉检测。例如,图10-12(a)中的直方图有两个截然不同的模式;很容易选择阈值T来分开它们。选择T的另一个方法是反复实验,选取不同的阈值,直到观测者觉得产生了较好的结果为止,这在交互环境下特别有效。例如,这种方法允许使用者通过widget(图形控制)改变阈值,就像游标一样,可以立即看见结果。 通常,在图像处理中首选的方法是使用一种能基于图像

梦想庚远 6251

基于灰度世界、完美反射、动态阈值等图像自动白平衡算法

文章目录一、灰度世界算法二、完美反射算法三、动态阈值算法 一、灰度世界算法 灰度世界算法(Gray World)是以灰度世界假设为基础的,该假设认为对于一幅有着大量色彩变化的图像, R、 G、 B 三个分量的平均值趋于同一个灰度K。一般有两种方法来确定该灰度。 算法步骤 直接给定为固定值, 取其各通道最大值的一半,即取为127或128; 令 K = (Raver+Gaver+Baver)/3,其中Raver,Gaver,Baver分别表示红、 绿、 蓝三个通道的平均值。 分别计算各通道的增益: Kr

红叶谷 wsp_1138886114的博客 2895

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 303
上一篇: MongoTemplate查询工具类,大家都来试试吧
下一篇: Kafka入门教程
一步一结
博客等级 码龄7年 50粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值