当前位置: 首页 > news >正文

树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)

 本人所用树莓派4B 装载的系统与版本如下:

 版本可用命令 (lsb_release -a) 查询:

 Opencv 版本是4.5.1:

 OpenCv颜色追踪_程序手动调试HSV色彩空间_检测灰度图中的圆

今日学习的程序主要是为了能够手动微调整好更为适合多变环境的HSV色彩空间

文章提供测试代码讲解,整体代码贴出、测试效果图

目录

实验目的:

实验大致过程视频:

完整实例代码贴出:

代码小结:

代码实验操作与测试结果图:

应用HSV阈值函数 cv2.inRange():

组合HSV阈值 cv2.bitwise_and():

形态学操作函数:(膨胀/腐蚀/开运算/闭运算):

高斯模糊cv2.GaussianBlur():

 霍夫圆变换来检测圆形:

网上查阅资料贴出:


实验目的:

实时地从视频流中检测特定颜色范围内的圆形物体。

用户可以通过Trackbars调整HSV颜色阈值来指定要检测的HSV颜色范围。使得程序对特定颜色小球的检测更为准确

检测到的圆形物体将在原始帧上被绘制出来,并根据其大小以不同的颜色和线宽进行区分。此外,如果检测到的圆的半径超过某个阈值(在这里是35),则会设置一个标志(buzz)。

实验全部过程视频:

OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆

完整实例代码贴出:

实时地从视频流中检测特定颜色范围内的圆形物体。

可以通过Trackbars调整HSV颜色阈值来指定要检测圆的颜色范围。

# -*- coding: utf-8 -*-
import cv2
import numpy as np
import time  kernel = np.ones((5,5),np.uint8)
# 从网络摄像头获取输入
cap = cv2.VideoCapture(0)time.sleep(0.5)# 将视频尺寸减小到320x240,这样rpi处理速度就会更快
cap.set(3,320)
cap.set(4,240)#第一个空回调函数
def nothing(x):pass# 创建一个供以后使用的窗口
cv2.namedWindow('HueComp')
cv2.namedWindow('SatComp')
cv2.namedWindow('ValComp')
cv2.namedWindow('closing')
cv2.namedWindow('tracking')# 创建跟踪条的最小和最大的色调,饱和度和价值
# 允许用户实时调整参数值HSV
cv2.createTrackbar('hmin', 'HueComp',12,179,nothing)
cv2.createTrackbar('hmax', 'HueComp',37,179,nothing)cv2.createTrackbar('smin', 'SatComp',96,255,nothing)
cv2.createTrackbar('smax', 'SatComp',255,255,nothing)cv2.createTrackbar('vmin', 'ValComp',186,255,nothing)
cv2.createTrackbar('vmax', 'ValComp',255,255,nothing)while(1):buzz = 0#读取帧并转换到HSV空间_, frame = cap.read()hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)hue,sat,val = cv2.split(hsv)#获取Trackbar的当前值hmn = cv2.getTrackbarPos('hmin','HueComp')hmx = cv2.getTrackbarPos('hmax','HueComp')smn = cv2.getTrackbarPos('smin','SatComp')smx = cv2.getTrackbarPos('smax','SatComp')vmn = cv2.getTrackbarPos('vmin','ValComp')vmx = cv2.getTrackbarPos('vmax','ValComp')#应用HSV阈值hthresh = cv2.inRange(np.array(hue),np.array(hmn),np.array(hmx))sthresh = cv2.inRange(np.array(sat),np.array(smn),np.array(smx))vthresh = cv2.inRange(np.array(val),np.array(vmn),np.array(vmx))# 组合HSV阈值 使用按位与操作来组合三个HSV分量的阈值结果,从而得到颜色范围内所有像素的掩码。tracking = cv2.bitwise_and(hthresh,cv2.bitwise_and(sthresh,vthresh))#形态学操作#对掩码进行膨胀、闭操作和高斯模糊,以减少噪声并增强圆形物体的检测。dilation = cv2.dilate(tracking,kernel,iterations = 1)closing = cv2.morphologyEx(dilation, cv2.MORPH_CLOSE, kernel)closing = cv2.GaussianBlur(closing,(5,5),0)#使用霍夫圆变换来检测圆形。circles = cv2.HoughCircles(closing,cv2.HOUGH_GRADIENT,2,120,param1=120,param2=50,minRadius=10,maxRadius=0)#绘制检测到的圆形#如果检测到圆形,就在原始帧上绘制它们。根据圆形的半径大小,使用不同的颜色和线宽进行绘制。if circles is not None:x, y, r = circles[0][0]x_p = int(round(x))print (x_p)for i in circles[0,:]:if int(round(i[2])) < 30:cv2.circle(frame,(int(round(i[0])),int(round(i[1]))),int(round(i[2])),(0,255,0),5)cv2.circle(frame,(int(round(i[0])),int(round(i[1]))),2,(0,255,0),10)elif int(round(i[2])) > 35:cv2.circle(frame,(int(round(i[0])),int(round(i[1]))),int(round(i[2])),(0,0,255),5)cv2.circle(frame,(int(round(i[0])),int(round(i[1]))),2,(0,0,255),10)buzz = 1  cv2.imshow('HueComp',hthresh)cv2.imshow('SatComp',sthresh)cv2.imshow('ValComp',vthresh)cv2.imshow('closing',closing)cv2.imshow('tracking',frame)if cv2.waitKey(1) & 0xFF == ord('q'):cap.release()L_Motor.stop()R_Motor.stop()GPIO.cleanup()cv2.destroyAllWindows() breakcap.release()
cv2.destroyAllWindows() 

代码小结:

1、创建Trackbar

2、始化循环,读取帧并转换到HSV空间

3、获取Trackbar的当前值

4、应用HSV阈值

5、组合HSV阈值

6、形态学操作

7、检测圆形

8、绘制检测到的圆形

9、输出和判断

代码实验操作与测试结果图:

1、使用树莓派的USB摄像头拍摄一张球形物体的图片用于取色获取大致BGR色域范围:

我的颜色范围是:138   67   17

拍摄程序在这篇文章有提到:树莓派4B_OpenCv学习笔记4:测试摄像头_imread加载显示图像_imwrite保存图片_树莓派摄像头怎么保存照片-CSDN博客

2、运行程序将BGR颜色空间转换为HSV:

BGR_HSV转换程序在这篇文章有提到:

树莓派4B_OpenCv学习笔记6:OpenCv识别已知颜色_运用掩膜_树莓派 图像融合-CSDN博客

3、运行本次实验的程序,将TrackBar调整到差不多的HSV范围:

发现如果不进行调整直接运用第二步得到的颜色空间范围,那么将会检测到许多的“圆”:

然后根据HSV窗口展示轮廓,调整它们的最大值与最小值,使其掩膜中的目标圆球轮廓更清晰,而其余噪声点更小:

然后拿远点测试,以及将瓶盖侧放,看是否会误检测为圆:

应用HSV阈值函数 cv2.inRange()

    #应用HSV阈值
    hthresh = cv2.inRange(np.array(hue),np.array(hmn),np.array(hmx))
    sthresh = cv2.inRange(np.array(sat),np.array(smn),np.array(smx))
    vthresh = cv2.inRange(np.array(val),np.array(vmn),np.array(vmx))

  1. hthresh

    • np.array(hue): HSV图像中的色调通道(H)。
    • np.array(hmn): 色调通道的下限值。
    • np.array(hmx): 色调通道的上限值。
    • 输出: 一个二值图像,其中在hmnhmx之间的色调值被设置为白色,其他值被设置为黑色。
  2. sthresh

    • np.array(sat): HSV图像中的饱和度通道(S)。
    • np.array(smn): 饱和度通道的下限值。
    • np.array(smx): 饱和度通道的上限值。
    • 输出: 一个二值图像,其中在smnsmx之间的饱和度值被设置为白色,其他值被设置为黑色。
  3. vthresh

    • np.array(val): HSV图像中的亮度通道(V或I,取决于你如何称呼它)。
    • np.array(vmn): 亮度通道的下限值。
    • np.array(vmx): 亮度通道的上限值。
    • 输出: 一个二值图像,其中在vmnvmx之间的亮度值被设置为白色,其他值被设置为黑色。

Tip:之前的颜色追踪实验也用到了掩膜,inRange(),只不过指定的通道为HSV全部:

树莓派4B_OpenCv学习笔记12:OpenCv颜色追踪_画出轨迹-CSDN博客

组合HSV阈值 cv2.bitwise_and():

    # 组合HSV阈值 使用按位与操作来组合三个HSV分量的阈值结果,

        从而得到颜色范围内所有像素的掩码。
    tracking = cv2.bitwise_and(hthresh,cv2.bitwise_and(sthresh,vthresh))

函数作用

cv2.bitwise_and() 对两个数组进行按位与操作,通常用于组合或修改二值图像。

当想将多个二值图像(或掩码)组合在一起时,通常需要使用这个函数来确保只有在所有掩码中对应位置都为“真”(即白色或255)的像素才会在结果图像中保留为白色。

在给出的例子中,将三个HSV分量(色调、饱和度和亮度)的阈值结果组合成一个最终的掩码,以识别特定颜色范围内的所有像素。

在这个修正后的代码中:

  • hsv_thresh_hshthreshsthresh 的按位与结果,它只包含同时在色调和饱和度范围内的像素。
  • trackinghsv_thresh_hsvthresh 的按位与结果,它只包含同时在色调、饱和度和亮度范围内的像素,即您想要跟踪的颜色范围内的所有像素。

形态学操作函数:(膨胀/腐蚀/开运算/闭运算):

closing = cv2.morphologyEx(dilation, cv2.MORPH_CLOSE, kernel)

cv2.morphologyEx() 是 OpenCV 中用于形态学变换的函数,它可以执行各种形态学操作,如腐蚀(erosion)、膨胀(dilation)、开运算(opening)和闭运算(closing)等。

在给出的例子中,cv2.morphologyEx(dilation, cv2.MORPH_CLOSE, kernel) 是执行闭运算(closing operation)的调用。

函数作用闭运算首先执行膨胀操作,然后执行腐蚀操作。闭运算的主要目的是消除图像中的小孔(即黑色区域中的白色点),并连接相邻的对象。这在图像处理中用于平滑物体的轮廓,去除小的孔洞,以及连接断裂的轮廓。

传入参数:

src

输入图像,通常是二值图像。在给出的例子中,是 dilation,即已经过膨胀操作的图像。

  • 类型:可以是灰度图或二值图,其数据类型通常是 CV_8U, CV_16U, CV_16S, CV_32F, 或 CV_64F 之一。
  • 描述:源图像,即要进行形态学操作的图像。

operation

形态学操作的类型。在给出的例子中,是 cv2.MORPH_CLOSE,表示执行闭运算。

  • cv2.MORPH_ERODE:腐蚀操作
  • cv2.MORPH_DILATE:膨胀操作
  • cv2.MORPH_OPEN:开运算(先腐蚀后膨胀)
  • cv2.MORPH_CLOSE:闭运算(先膨胀后腐蚀)
  • cv2.MORPH_GRADIENT:形态学梯度
  • cv2.MORPH_TOPHAT:原图像减去膨胀的图像
  • cv2.MORPH_HITMISS:结构元素对应的点集比较
  • 注意:其他可能还有如 cv2.MORPH_BLACKHAT 等操作,具体请参考 OpenCV 官方文档。
kernel:结构元素(structuring element)。
  • 类型:数组,通常是 numpy 数组,形状如矩形、椭圆或交叉形等。
  • 描述:定义了形态学操作的局部形状和大小。可以使用cv2.getStructuringElement() 函数来创建结构元素。

dst (输出图像, 可选):

  • 类型:与 src 相同的数据类型
  • 描述:输出图像,如果未指定,则函数会创建一个新的输出图像。

anchor (锚点位置, 可选):

  • 类型:元组,指定了结构元素的锚点位置。
  • 描述:默认为结构元素的中心。如果指定了锚点,则形态学操作将围绕该点进行。

iterations (迭代次数, 可选):

  • 类型:整数
  • 描述:腐蚀与膨胀被应用的次数。默认为1。

borderType (边界类型, 可选):

  • 类型:整数
  • 描述:像素边界扩展类型,具体类型请参考 OpenCV 官方文档中的 BorderTypes

borderValue (边界值, 可选):

  • 类型:与 src 相同的数据类型
  • 描述:当 borderTypeBORDER_CONSTANT 时,用于填充边界的常量值。

高斯模糊cv2.GaussianBlur():

closing = cv2.GaussianBlur(closing,(5,5),0)

在 OpenCV 中用于对图像进行高斯模糊。高斯模糊是一种用于减少图像噪声和细节层次的图像滤波技术。它使用一个高斯函数来创建模糊滤波器,该滤波器在中心点的权重最高,然后随着距离的增加权重逐渐降低。

该函数对 closing 图像进行高斯模糊。这通常在图像处理流程中用于减少图像的细节和噪声,尤其是在特征检测或对象识别之前。

传入参数

  1. src (closing 在此例中):输入图像,即要进行高斯模糊的图像。
  2. ksize ((5,5) 在此例中):高斯核的大小。它必须是正奇数,并且可以是元组 (width, height),其中 widthheight 必须是正整数且都是奇数。如果 ksize 是一个整数,那么它会被视为 (ksize, ksize) 的正方形核。在此例中,(5,5) 表示一个 5x5 的核。
  3. sigmaX (0 在此例中):X 方向的标准差;决定了模糊的程度。如果 sigmaX 是 0,那么它会根据核大小来计算。如果 sigmaY 也是 0,那么 sigmaY 会与 sigmaX 相等。在此例中,因为 sigmaX 是 0,所以会根据 5x5 的核大小来计算标准差。

输出
输出是一个与输入图像 closing 大小和类型相同的新图像,其中包含了高斯模糊的结果。这个新的图像是原图像的模糊版本,细节层次被降低,噪声被减少。

 霍夫圆变换来检测圆形:

#使用霍夫圆变换来检测圆形。
circles = cv2.HoughCircles(closing,cv2.HOUGH_GRADIENT,2,120,param1=120,param2=50,minRadius=10,maxRadiu
s=0)

cv2.HoughCircles 函数用于在灰度图像中检测圆形。它使用霍夫变换的一个变种来检测图像中的圆形。

传入参数

  1. image:8位单通道灰度图像。
  2. method:检测方法,如 cv2.HOUGH_GRADIENTcv2.HOUGH_GRADIENT_ALT
  3. dp:检测器分辨率的倒数。如果设置为 1,则与图像分辨率相同。如果设置为 2,则分辨率是原始图像的一半。
  4. minDist:检测到的圆心之间的最小距离。
  5. param1:Canny 边缘检测中的高阈值。
  6. param2:在检测阶段,检测到的圆心的累加器阈值。这个值越小,检测到的圆就越多。
  7. minRadius:最小圆半径。
  8. maxRadius:最大圆半径。如果设置为 0,则使用最大可能的半径。

输出
返回一个 NumPy 数组,其中包含检测到的圆的 (x,y) 坐标和半径。数组的形状是 (num_circles, 3),其中每一行包含三个值:(x, y, radius)

网上查阅资料贴出:

[树莓派基础]8.树莓派OpenCV颜色追踪讲解_哔哩哔哩_bilibili

文心一言

相关文章:

树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1&#xff1a; OpenCv颜色追踪_程序手动调试HSV色彩空间_检测灰度图中的…...

Golang | Leetcode Golang题解之第198题打家劫舍

题目&#xff1a; 题解&#xff1a; func rob(nums []int) int {if len(nums) 0 {return 0}if len(nums) 1 {return nums[0]}first : nums[0]second : max(nums[0], nums[1])for i : 2; i < len(nums); i {first, second second, max(first nums[i], second)}return se…...

基于ruoyi-app的手机短信登录(uniapp)

本篇用于记录h5的框架搭建 组件地址:短信验证码登陆&#xff0c;手机号&#xff0c;验证码倒计时 - DCloud 插件市场 调整后的表单组件代码: <template><view class"login-view"><!-- <input type"tel" confirm-type"确认"…...

机器学习环境搭建

前言 个人笔记&#xff0c;记录框架和小问题&#xff0c;没有太详细记载。。 1、Anaconda安装 下载地址&#xff1a; Free Download | Anaconda &#xff08;慢&#xff09; ​ 国内镜像&#xff1a;https://link.csdn.net/?targethttp%3A%2F%2Fitcxy.xyz%2F241.html 下载…...

2095.删除链表的中间节点

给你一个链表的头节点 head 。删除链表的中间节点 &#xff0c;并返回修改后的链表的头节点 head。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点&#xff08;下标从 0 开始&#xff09;&#xff0c;其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n 1、2、3、4 和…...

Qt QML 坑

Qt QML 坑 QML Listview 1、不定高item 导致item重叠 ListView {id: _cityListViewproperty var _cityArray: [{ type:"A",cityArray:[]},{ type:"B",cityArray:[]},{ type:"C",cityArray:[]},{ type:"D",cityArray:[]}]model: List…...

Chrome浏览器web调试(js调试、css调试、篡改前置)

目录 1. 打开开发者工具(Dev Tool) 2. 打开命令菜单 截图 3. 面板介绍 4. CSS调试 右键检查快速到达元素处 查找DOM数 利用面板Console查找DOM节点 内置函数查找上一个选择点击的元素 5. 调试JS代码(Javascript调试) 日志调试 选择查看日志等级 眼睛观测变量 …...

【Java】Logbook优化接口调用日志输出,优雅!

logbook 简介 很多人可能没有接触过 logbook&#xff0c;但它的确是一个很好用的日志框架。引用官网的介绍 Logbook 是一个可扩展的 Java 库&#xff0c;可以为不同的客户端和服务器端技术启用完整的请求和响应日志记录。它通过以下方式满足了特殊需求&#xff1a; 允许 Web 应…...

LabVIEW电压电流实时监测系统

开发了一种基于LabVIEW和研华&#xff08;Advantech&#xff09;数据采集卡的电压电流实时监测系统&#xff0c;通过高效的数据采集和处理&#xff0c;为工业和科研用户提供高精度、实时的电压电流监测解决方案。系统采用研华USB-4711A数据采集卡&#xff0c;结合LabVIEW编程环…...

骁龙相机拍照流程分析

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 1.deliverInputEvent 拍照点击事件处理 2.submitRequestList Camera 提交拍照请求 3.createCaptureRequest 拍照请求帧数 骁龙相机通过binder 数据传输…...

sql-语句

文章目录 SQL语句的学习sql是什么sql的内置命令sql的种类sql mode库&#xff0c;表属性介绍&#xff1a;字符集&#xff0c;存储引擎列的数据类型&#xff1a;数字&#xff0c;字符串&#xff0c;时间列的约束DDL: 数据定义语言库表 Online DDL(ALGORITHM) *DML :数据操纵语言资…...

解决Vue3项目中跨域问题的步骤

决Vue3项目中跨域问题的步骤可以按照以下方式清晰地分点表示和归纳&#xff1a; 1. 使用代理服务器&#xff08;Proxy&#xff09; 步骤&#xff1a; 在Vue项目的根目录下找到或创建vue.config.js文件。在vue.config.js中配置devServer的proxy选项。设定需要代理的接口前缀&a…...

macos scroll direction

If there is no Trackpad option, we can change it in the Mouse option. How to Change the Scroll Direction on a Mac: 2 Ways...

Websocket实现方式二——注解方式

添加Websocket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>根据ServerEndpoint注解注册Websocket Configuration public class AgentWsConfig …...

零基础开始学习鸿蒙开发-页面导航栏布局设计

目录 1.设定初始页(Idex.ets) 2.自定义首页组件 3.自定义发现页面组件 4.自定义设置页面组件 总结:主要是运用 了Tabs组件对导航栏进行布局&#xff0c;然后运用BottomTabBarStyle组件嵌套图标和文字&#xff0c;完成导航栏的制作。 1.设定初始页(Idex.ets) import {find}…...

【Hive中常见的优化手段----数据采集!Join 优化!Hive索引!数据倾斜!mapreduce本地模式!map和reduce数量调整!】

前言&#xff1a; &#x1f49e;&#x1f49e;大家好&#xff0c;我是书生♡&#xff0c;今天主要和大家分享一下Hive中常见的优化手段----数据采集&#xff01;常见的Join 优化有哪几种&#xff01;什么是Hive索引&#xff01;数据怎么发生倾斜&#xff01;什么是mapreduce的本…...

【面试系列】软件工程师高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…...

Qt开发 | Qt界面布局 | 水平布局 | 竖直布局 | 栅格布局 | 分裂器布局 | setLayout使用 | 添加右键菜单 | 布局切换与布局删除重构

文章目录 一、Qt界面布局二、Qt水平布局--QHBoxLayout三、Qt竖直布局四、Qt栅格布局五、分裂器布局代码实现六、setLayout使用说明七、布局切换与布局删除重构1.如何添加右键菜单2.布局切换与布局删除重构 一、Qt界面布局 Qt的界面布局类型可分为如下几种 水平布局&#xff08;…...

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection 论文链接&#xff1a;http://arxiv.org/abs/2406.03459 代码链接&#xff1a;https://github.com/Atten4Vis/LW-DETR 一、摘要 介绍了一种轻量级检测变换器LWDETR&#xff0c;它在实时物体检测方面超越…...

前端技术(二)——javasctipt 介绍

一、javascript基础 1. javascript简介 ⑴ javascript的起源 ⑵ javascript 简史 ⑶ javascript发展的时间线 ⑷ javascript的实现 ⑸ js第一个代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...