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

day37图像处理OpenCV

文章目录

  • 一、图像预处理
    • 19 霍夫变换
      • 19.1 理解霍夫变换
      • 19.2 (标准)霍夫直线变换
      • 19.3 统计概率霍夫直线变换
      • 19.4 霍夫圆变换

一、图像预处理

19 霍夫变换

19.1 理解霍夫变换

  • 霍夫变换是图像处理的一种技术,主要用于检测图像中的直线、圆等几何形状。基本思想就是将图像空间中的点映射到参数空间中,通过在参数空间中寻找累计最大值实现对特定形状的检测。

在这里插入图片描述

19.2 (标准)霍夫直线变换

  • 基本原理:没有考虑x=1的直线
    • 对于一条直线(不垂直于x轴的直线),都可以用 y = k x + b y=k x+b y=kx+b来表示,此时,x和y是横纵坐标。
    • 霍夫直线就是以k和b为横纵坐标。这样原直线的每个点都可以确定一条霍夫直线,并且都交于一点(k,b),该霍夫直线用 b = − x k + y b=-x k+y b=xk+y表示。
    • 那么对于一个二值化后的图形来说,其中的每一个目标像素点(x,y),都可以画一条霍夫直线。
    • 这时判断,共点的霍夫直线越多(有相同的k,b),证明许多的点在一条的普通直线上( y = k x + b y=k x+b y=kx+b)

在直角坐标系下的一个直线,在变换后的空间中仅仅表示为一点,对于变换后的空间,我们称其为霍夫空间,也就是参数空间。也就是说,直角坐标系下的一条直线对应了霍夫空间中的一个点。类似的,霍夫空间中的一条直线也对应了直角坐标系中的一个点,如下图所示:

在这里插入图片描述

  • 进阶原理:将直角坐标系转化为极坐标系

    • 然而对于x=1这种直线(垂直于x轴)来说,y已经不存在了,斜率无穷大,无法映射到霍夫空间中去;所以先将直角坐标系转化为极坐标系,然后通过极坐标系与霍夫空间进行相互转化。

      在这里插入图片描述

    • 这时,霍夫直线的r是y轴,θ是x轴;因此我们只要知道某点的x和y的坐标,就可以得到一个关于θ-ρ的表达式,如下图所示:

在这里插入图片描述

  • 语法:
    • lines=cv2.HoughLines(image, rho, theta, threshold)
      • 参数
        • image:输入边缘检测cv.Canny(gray,30,70)得到的图像
        • rho:r的精度,以像素.为单位,表示霍夫空间中每一步的距离增量, 值越大,考虑越多的线。
        • theta:角度θ的精度,通常以弧度为单位**(np.pi/180)**,表示霍夫空间中每一步的角度增量。值越小,考虑越多的线。
        • threshold:阈值,只有共点的霍夫直线的数大于阈值,该共点才会保存
      • 返回值:
        • 函数返回一个二维数组,每一行代表一条直线,返会的值是保存的共点 (θ, ρ)
  • 返回值处理:
    • 极坐标系:$ρ=x · cosθ +y · sinθ $
    • 已知 θ,ρ,再确认两个x点,就能算出两个y点,最后根据两点画直线
  • 示例:
# 读图
img = cv.imread("./images/huofu.png")
# 转灰度
gray = cv. cvtColor(img,cv.COLOR_BGR2GRAY)
# 边缘检测
dst = cv.Canny(gray,30,70)
# 霍夫直线变换
lines = cv.HoughLines(dst,0.8,np.pi/180,90)
# 遍历返回数组画直线
for line in lines:rho, theta = line[0]  # 满足的共点(θ, ρ)# 计算直线上的两个点sin_theta = np.sin(theta)cos_theta = np.cos(theta)x1,x2 = 0, img.shape[1]y1, y2 = int((rho-x1*cos_theta)/sin_theta), int((rho-x2*cos_theta)/sin_theta)# 画直线cv.line(img,(x1,y1),(x2,y2),(0,0,255),1,cv.LINE_AA)# 显示图片
cv.imshow("img",img)
cv.waitKey(0)
cv.destroyAllWindows()

19.3 统计概率霍夫直线变换

前面的方法又称为标准霍夫变换,它会计算图像中的每一个点,计算量比较大,另外它得到的是整一条线(r和θ),并不知道原图中直线的端点。所以提出了统计概率霍夫直线变换(Probabilistic Hough Transform),是一种改进的霍夫变换。

  • 改进原理:

    • 它在获取到直线之后,会检测原图中在该直线上的点,并获取到两侧的端点坐标,然后通过两个点的坐标来计算该直线的长度,通过直线长度与最短长度阈值的比较来决定该直线要不要被保留。
  • 语法:

    • lines=cv2.HoughLinesP(image, rho, theta, threshold, lines=None, minLineLength=0, maxLineGap=0)
      • 参数
        • image:输入图像,通常为二值图像,其中白点表示边缘点,黑点为背景。
        • rho:极径分辨率,以像素为单位,表示极坐标系中的距离分辨率。
        • theta:极角分辨率,以弧度为单位,表示极坐标系中角度的分辨率。
        • threshold:阈值,用于过滤掉弱检测结果,只有累计投票数超过这个阈值的直线才会被返回。
        • lines(可选):一个可初始化的输出数组,用于存储检测到的直线参数。
        • minLineLength(可选):最短长度阈值,比这个长度短的线会被排除。
        • maxLineGap(可选):同一直线两点之间的最大距离。当霍夫变换检测到一系列接近直角的线段时,这些线段可能是同一直线的不同部分。maxLineGap参数指定了在考虑这些线段属于同一直线时,它们之间最大可接受的像素间隔。
      • 返回值:
        • 返回一个二维数组,每个元素是一个包含4个元素的数组,分别表示每条直线的起始点和结束点在图像中的坐标(x1, y1, x2, y2)。
    • 示例:
    # 读图
    img = cv.imread("./images/huofu.png")
    # 转灰度
    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    # 边缘检测
    dst = cv.Canny(gray, 30, 70)
    # 统计概率霍夫直线变换--这里没设置参数lines,所以后面两个参数要指定变量名
    lines = cv.HoughLinesP(dst, 0.8, np.pi / 180, 90, minLineLength=50, maxLineGap=10)
    # 遍历返回数组画直线
    for line in lines:x1, y1, x2, y2 = line[0]  # 直线的两端坐标# 画直线cv.line(img, (x1, y1), (x2, y2), (0, 0, 255), 1, cv.LINE_AA)# 显示图片
    cv.imshow("img", img)
    cv.waitKey(0)
    cv.destroyAllWindows()
    

19.4 霍夫圆变换

霍夫圆变换跟直线变换类似,它可以从图像中找出潜在的圆形结构,并返回它们的中心坐标和半径。只不过线是用(r,θ)表示,圆是用(x_center,y_center,r)来表示,从二维变成了三维,数据量变大了很多;所以一般使用霍夫梯度法减少计算量。

  • 语法

    • circles=cv2.HoughCircles(image, method, dp, minDist, param1, param2)
      • 参数
        • image:输入图像,通常是灰度图像。
        • method:使用的霍夫变换方法:霍夫梯度法,可以是 cv2.HOUGH_GRADIENT,这是唯一在OpenCV中用于圆检测的方法。
        • dp:累加器分辨率与输入图像分辨率之间的降采样比率,用于加速运算但不影响准确性。设置为1表示霍夫梯度法中累加器图像的分辨率与原图一致
        • minDist:检测到的圆心之间的最小允许距离,以像素为单位。在霍夫变换检测圆的过程中,可能会检测到许多潜在的圆心。minDist 参数就是为了过滤掉过于接近的圆检测结果,避免检测结果过于密集。当你设置一个较小的 minDist 值时,算法会尝试找出尽可能多的圆,即使是彼此靠得很近的圆也可能都被检测出来。相反,当你设置一个较大的 minDist 值时,算法会倾向于只检测那些彼此间存在一定距离的独立的圆。
        • param1param2:这两个参数是在使用 cv2.HOUGH_GRADIENT 方法时的特定参数,分别为:
          • param1(可选):阈值1,决定边缘强度的阈值。
          • param2:阈值2,控制圆心识别的精确度。较大的该值会使得检测更严格的圆。param2 通常被称为圆心累积概率的阈值。在使用霍夫梯度方法时,param2 设置的是累加器阈值,它决定了哪些候选圆点集合被认为是有效的圆。较高的 param2 值意味着对圆的检测更严格,只有在累加器中积累了足够高的响应值才认为是真实的圆;较低的 param2 值则会降低检测的门槛,可能会检测到更多潜在的圆,但也可能包含更多的误检结果。
      • 返回值:
        • 返回一个二维numpy数组,包含了所有满足条件的圆的圆心坐标和半径。
  • 示例

img = cv.imread("./images/huofu.png")
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
dst = cv.Canny(gray,30, 70)
# 霍夫圆变换
circles = cv.HoughCircles(dst,cv.HOUGH_GRADIENT,1,20,param2=30)
# 转整数
circles = np.int_(circles)
# 遍历画圆
for circle in circles:x,y,r = circle[0] # 圆心坐标和半径cv.circle(img,(x,y),r,(0,0,255),1,cv.LINE_AA)
cv.imshow("img",img)
cv.waitKey(0)
cv.destroyAllWindows()

相关文章:

day37图像处理OpenCV

文章目录 一、图像预处理19 霍夫变换19.1 理解霍夫变换19.2 (标准)霍夫直线变换19.3 统计概率霍夫直线变换19.4 霍夫圆变换 一、图像预处理 19 霍夫变换 19.1 理解霍夫变换 霍夫变换是图像处理的一种技术,主要用于检测图像中的直线、圆等几何形状。基本思想就是将…...

23种设计模式-行为型模式之责任链模式(Java版本)

Java 责任链模式(Chain of Responsibility Pattern)详解 🧠 什么是责任链模式? 责任链模式是一种行为型设计模式,它使多个对象都有机会处理请求,从而避免请求的发送者与接收者之间的耦合关系。将这些对象…...

机器学习的基本概念

机器学习是人工智能的一个重要研究领域。与计算机科学、心理学等多种学科都有密切的关系,牵涉的面比较宽,而且许多理论及技术上的问题尚处于研究之中,接下来对它的一些基本概念和方法作一简要讨论,以便对它有一个初步的认识。 一…...

【6】GD32 高级通信外设 CAN、USBD

高级通信外设:CAN、USBD CAN CAN简介、主要功能与相关API回环模式收发发送特定ID的数据帧实验CAN数据帧的接收实验使用过滤器接收特定的数据帧 USBD USB通信简介USBD设备固件库架构、分层文件与库函数说明USBD模拟键盘应用USBD虚拟串口应用USBD模拟U盘应用...

手工收集统计信息

有时想对某些表收集统计信息 CREATE OR REPLACE PROCEDURE GATHER_STATS ASDECLAREV_SQL1 VARCHAR(1000);--表游标CURSOR C1 ISSELECT (SELECT USER) AS TABLE_OWNER,TABLE_NAMEFROM USER_TABLES; --可以在这里加过滤条件--索引游标CURSOR C2 ISSELECT TABLE_OWNER,INDEX_NAM…...

隧道调频广播覆盖的实现路径:隧道无线广播技术赋能行车安全升级,隧道汽车广播收音系统助力隧道安全管理升级

隧道调频广播覆盖的实现路径:隧道无线广播技术赋能行车安全升级,隧道汽车广播收音系统助力隧道安全管理升级 北京海特伟业科技有限公司任洪卓发布于2025年4月23日 在现代交通基础设施建设中,隧道作为公路、铁路等交通网络的重要组成部分,其内部通信系统…...

深度强化学习(DRL)实战:从AlphaGo到自动驾驶

——从算法原理到产业落地的全链路解析 摘要 本文通过算法对比矩阵、训练流程图解、Python代码实战及产业应用解析,构建从理论创新到工程落地的完整技术栈。实验数据显示:采用PPO算法训练的7自由度机械臂抓取成功率达92%,基于改进型DQN的自…...

【数据可视化-33】病毒式社交媒体潮流与用户参与度可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

ubuntu使用dify源码安装部署教程+避坑指南

很多人,包括我在最初使用dify的时候都习惯使用docker来部署安装环境,但在二次开发使用过程中,我们可能希望使用源码来安装,那么这篇文章我将给大家分享如何在ubuntu系统下使用源码安装,并提供大家遇到的疑难杂症如下: dify安装使用过程中报错:/console/api/workspaces/…...

软件技术专业

软件技术专业是一个专注于软件开发、测试、维护及相关技术的学科专业。以下是其相关介绍: 专业概述 软件技术专业主要培养具备扎实的软件理论基础和较强的实践能力,能熟练掌握软件开发工具和技术,从事软件设计、开发、测试、维护等工作的高素…...

AI数据分析的利器:解锁BI工具的无限潜力

在数字化浪潮席卷全球的今天,数据已成为企业最宝贵的资产之一。如何高效、准确地分析这些数据,挖掘其中的价值,成为企业决策的关键。AI数据分析,作为新时代的数据分析利器,正逐渐改变着企业的决策方式。而BI&#xff0…...

docker 代理配置冲突问题

问题描述 执行 systemctl show --property=Environment docker 命令看到有如下代理配置 sudo systemctl show --property=Environment docker Environment=HTTP_PROXY=http://127.0.0.1:65001 HTTPS_PROXY=http://127.0.0.1:65001 NO_PROXY=127.0.0.1,docker.io,ghcr.io,uhub…...

清理HiNas(海纳斯) Docker日志并限制日志大小

我在一个机顶盒的HiNas系统上跑Octoprint的docker版本,每隔一段时间盒子空间就被占完了,运行df -h之后,显示/dev/root Use 100%。 Filesystem Size Used Avail Use% Mounted on /dev/root 6.6G 6.6G 0 100% / devtmpfs …...

kafka整合flume与DStream转换

一、Kafka整合flume cd /opt/software/flume/conf/ vi flume-kafka.conf a1.sourcesr1 a1.sinksk1 a1.channelsc1 a1.sources.r1.typespooldirt a1.sources.r1.spoolDir/root/flume-kafka a1.sinks.k1.typeorg.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.to…...

第2讲:R语言中的色彩美学——科研图表配色指南

目录 一、背景导引:科研图表为何需要“配色讲究”? 二、色彩基础认知:别让“红绿盲”错过你的科研成果 三、R语言中的配色库全景图 四、案例演示与代码实战 🎨案例1:ggplot2 + viridis 配色的热图 🎨案例2:MetBrewer 中的印象派色彩 五、技巧点拨:如何为SCI图…...

C++入门小馆: 深入了解STLlist

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…...

Float32、Float16、BFloat16

我们先介绍 Float32、Float16、BFloat16 的 浮点数表示方法 然后根据浮点数表示,来分析总结他们是怎么控制 精度和 数值范围 的 最后再来对比的说明 Float32、Float16、BFloat16 的 应用场景 和 硬件支持 1、浮点数的表示方法 Float32 : 单精度浮点数…...

多模态深度学习: 从基础到实践

多模态深度学习: 从基础到实践 多模态学习是人工智能领域的前沿方向,它允许模型同时处理和理解多种数据类型。本文将介绍多模态学习的核心概念,以及如何在实际项目中应用这些技术。 什么是多模态学习? 多模态学习涉及处理和整合来自不同来…...

Java学习手册:时间戳、时区等相关概念

一、时间戳 定义 :时间戳是指以秒或毫秒为单位,表示自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的 elapsed time。它是衡量时间的一种方式,常用于系统开发中记录事件的发生顺序和具体时间。作用 :…...

Axure全局变量的含义与基础应用

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:全局变量 主要内容:全局变量含义、基础应用 应用场景:元件赋值 案例展示: 案例视频:...

Java 24 深度解析:云原生时代的性能更新与安全重构

一、Java 24 核心特性全景图 Java 24 于 2025 年 3 月正式发布,带来 24 项核心改进,覆盖性能优化、安全性增强、语言升级和云原生支持四大领域。以下是关键特性的全景式解析: 1. 性能优化:从内存到并发的全方位突破 紧凑对象头&…...

ubuntu(28):ubuntu系统多版本conda和多版本cuda共存

0. cuda(包括cudnn)、conda安装照常 注意: (1)多个conda不要安装到一个目录了,可以见下面的示例目录; (2)cuda(包括cudnn)不用纠结是否添加超链接 1. 需要修改环境配置…...

28、.NET 中元数据是什么?

在.NET中,元数据(Metadata)是描述程序结构和类型信息的二进制数据集合,它是.NET运行时(CLR)的核心基础组件之一,用于支持程序加载、类型解析、反射、安全校验等关键功能。以下是其核心特性和作用…...

插入html文件,让数据可视化彰显高端大气-Excel易用宝

我们老板整了个html文件的图表,说是html文件图表兼容性更好,现在让我将这个html文件的图表插入到Excel中。 其实这事也简单哈,通过插入web控件,就可以将HTML文件插入到工作表中。 单击【易用宝plus】→【插入Web控件】。 单击【…...

基于HTML+CSS实现的动态导航引导页技术解析

基于HTMLCSS实现的动态导航引导页技术解析 效果展示 核心技术实现 1. 视差背景层 #sence {position: fixed;width: 100vw;height: 100vh;z-index: -1; }#background {width: 140%;height: 140%;position: absolute;background-size: cover;filter: brightness(0.6);animatio…...

【编译原理】 第四章 自上而下语法分析

目录 语法分析器的功能 不确定的自上而下分析 确定的自上而下分析 LL(1)文法 左递归的消除 间接左递归的消除 消除文法中全部左递归的算法 消除回溯、提左因子 FIRST集 FOLLOW集 预测分析法 递归下降分析法 语法分析器的功能 按照文法从源程序单词串(符…...

vue入门

Vue入门 目录: 导入快速入门 什么是Vue为什么要学Vue面试题:Vue的特定Vue要学习什么 Vue常用指令 指令介绍表单绑定文本插值绑定属性条件渲染列表渲染事件绑定总结 0.导入 0.1什么是Vue Vue.js,通常称为Vue,是一个用于构建用户界面的渐…...

Unity开发者快速认识Unreal 的BluePrint(二)

前言 前一篇是通过UMG编辑器制作的一个简单ui功能,记录Unity开发者使用BluePrint需要特别注意的地方,这一篇是分析和理解对于场景中的3D物体交互的BluePrint怎么制作,以及需要注意的一些关键点!个人觉得最快的学习方式就是对比,入…...

APP和小程序需要注册域名吗?(国科云)

在移动互联网时代,APP和小程序已成为企业和个人提供服务、展示产品的重要渠道。那么APP和小程序的兴起是否对域名造成了冲击,APP和小程序是否需要注册域名呢? APP是否需要注册域名? 从技术上讲,没有域名的APP仍然可以…...

pandas读取MySQL中的数据

使用pandas读取MySQL中的数据 1、导入库 pip install pandas pip install sqlalchemy2、示例代码 # -*- coding: utf-8 -*-import pandas as pd import re from sqlalchemy import create_engine# 清洗文本 def clean_text(text):text...

算法设计与分析6(动态规划)

最长公共子序列和最长公共子串 动态规划的思路与字符串匹配的编辑距离问题相似,对字符串最尾端字符分类讨论 最长公共子序列 可以是不连续出现的,只要出现顺序是一样的 状态转移方程: 最长公共字串 要求连续出现,中断了就归0…...

ubuntu 20.04 编译运行lio-sam,并保存为pcd

1.环境依赖 ubuntu 20.04 ROS1 gtsam sudo add-apt-repository ppa:borglab/gtsam-release-4.0 sudo apt install libgtsam-dev libgtsam-unstable-dev 其他依赖 sudo apt-get install ros-noetic-fake-localization sudo apt-get install ros-noetic-robot-localization…...

国标GB28181视频平台EasyGBS视频监控平台助力打造校园安防智能化

一、方案背景 校园安全是教育管理中的重中之重。随着校园规模的不断扩大和安全管理要求的日益提高,传统的安防手段已难以满足现代校园的需求。EasyGBS作为一款基于国标GB/T28181协议的视频监控平台,能够实现对校园内各类视频监控设备的统一接入、管理和…...

深度解析 Java 泛型通配符 `<? super T>` 和 `<? extends T>`

Java 泛型中的通配符 ? 与 super、extends 关键字组合形成的 <? super T> 和 <? extends T> 是泛型系统中最重要的概念之一&#xff0c;也是许多开发者感到困惑的地方。本文将全面剖析它们的语义、使用场景和设计原理。 一、基础概念回顾 1. 泛型通配符 ? ?…...

iphonex uniapp textarea标签兼容性处理过程梳理

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“iphonex uniapp textarea标签兼容性处理过程梳理”。 在uniapp项目中&#xff0c;经常会使用到uniapp原生的textarea标签&#xff0c;但在手机兼容性这块&#xff0c;textarea并不是很好用&#xff0c;会出现一些…...

SiSi Coin全球共识社区开创Meme币新纪元,通缩机制与社区自治引领Web3未来

SiSi Coin是独家首创新型MeMe币, 通过独特的“黑洞销毁零撸空投”机制打造社交裂变与价值捕获的去中心化生态模式&#xff0c;作为SiSi WEB3 的社区代币&#xff0c;它旨在通过创新的经济模型设计实现长期价值增长。 《采用"黑洞机制"永久销毁加权分配》 核心创新&…...

PCIe具体解释分析

参考文章 PCIe总线详解_STATEABC-GitCode 开源社区 https://zhuanlan.zhihu.com/p/652808759 PCI总线学习(一)&#xff1a;PCI总线结构-CSDN博客 PCI——第1章——PCI总线的基本知识-CSDN博客 计算机中register、cache、memory的区别 - Lines Blog 什么是内存管理单元&#xff…...

OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享

文章目录 前言一、OpenWrt 与 Docker 的集成前提1.1 硬件与内核要求1.2 软件依赖 二、Docker 环境部署与验证2.1 基础服务配置2.2 存储驱动适配 三、容器化应用部署实践3.1 资源限制策略3.2 Docker Compose 适配 四、性能优化与监控4.1 容器资源监控4.2 镜像精简策略 五、典型问…...

sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型

更多内容&#xff1a;XiaoJ的知识星球 目录 1.构建sherpa-ncnn2.运行2.1 运行sherpa-ncnn2.2 运行sherpa-ncnn-alsa 1.构建sherpa-ncnn x86构建&#xff1a; git clone https://github.com/k2-fsa/sherpa-ncnn cd sherpa-ncnn mkdir build cd build cmake -DCMAKE_BUILD_TYPE…...

nc工具!Netcat:TCP/IP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 Netcat 是一个简单的 Unix 实用程序&#xff0c;使用 TCP 或 UDP 协议跨网络连接读写数据。它被设计为一个可靠的“后端”工具&#xff0c;可以直接使用&#xff0c;也可以由其他程序和脚本轻松驱动。同时&#xff0c;它也是一个功能丰富的网络调试和探索工具&#xff0c…...

【持续更新】 CDC 跨时钟域处理

在之前的专栏《硬件架构的艺术》里&#xff0c;有讲过亚稳态以及多个时钟的处理办法&#xff0c;但是感觉还是太宽泛了些&#xff0c;不太好理解。在这篇博客里&#xff0c;将主要参考《Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog…...

Mybatis-Plus,IDEA2024版本

目录 1、Mybatis-Plus介绍 2、Mybatis-Plus作用 3、Mybatis-Plus使用 1、引入依赖 2、配置数据库 3、生成代码 1、Mybatis-Plus介绍 Mybatis-Plus是在Mybatis的基础上进行的功能拓展&#xff0c;也就是Mybatis有的功能&#xff0c;Plus也有&#xff0c;而且比Mybatis更好用…...

LeNet5 神经网络的参数解析和图片尺寸解析

1.LeNet-5 神经网络 以下是针对 LeNet-5 神经网络的详细参数解析和图片尺寸变化分析&#xff0c;和原始论文设计&#xff0c;通过分步计算说明各层的张量变换过程。 经典的 LeNet-5架构简化版&#xff08;原始论文输入为 32x32&#xff0c;MNIST 常用 28x28 需调整&#xff09…...

hadoop-3.3.5.tar.gz 镜像

清华大学镜像站 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz 阿里云镜像站 wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz 华为云镜像站 wget https://mirrors.huaweiclo…...

SD2351核心板:重构AI视觉产业价值链的“超级节点”

在AI视觉技术狂飙突进的当下&#xff0c;一个吊诡的现象正在浮现&#xff1a;一方面&#xff0c;学术界不断刷新着ImageNet等基准测试的精度纪录&#xff1b;另一方面&#xff0c;产业界却深陷“算法有、场景无&#xff0c;技术强、落地难”的怪圈。明远智睿SD2351核心板的问世…...

C++23中if consteval / if not consteval (P1938R3) 详解

文章目录 引言基本概念consteval 回顾if consteval 和 if not consteval 的定义语法规则 设计目的解决现有问题增强代码的可读性和可维护性提高代码的性能和安全性 使用示例简单示例复杂示例 与其他特性的对比与 if constexpr 的对比与 std::is_constant_evaluated() 的对比 实…...

IPOF(Input-Process-Output-Feedback)方法学简介

一、背景知识&#xff1a;IPO与IPOF的基本概念 1. IPO&#xff08;Input-Process-Output&#xff0c;输入-处理-输出&#xff09; IPO是计算机科学、系统工程和设计领域中最基础的模型之一&#xff0c;用于描述系统如何将输入通过处理逻辑转换为输出。其核心是线性的单向流程…...

第十二天 使用Unity Test Framework进行自动化测试 性能优化:Profiler分析、内存管理

前言 在完成游戏核心功能开发后&#xff0c;如何确保项目质量并成功发布到各大平台&#xff1f;本文将从自动化测试到商店上架&#xff0c;手把手教你构建完整的游戏开发闭环。使用Unity 2022 LTS版本进行演示&#xff0c;所有代码均经过实际项目验证。 一、自动化测试实战&am…...

图解YOLO(You Only Look Once)目标检测(v1-v5)

1. YOLO系列整体介绍 YOLO属于深度学习经典检测方法中的单阶段&#xff08;one - stage&#xff09;类型&#xff0c;与两阶段&#xff08;two - stage&#xff0c;如Faster - rcnn、Mask - Rcnn系列&#xff09;方法相对。 不同模型性能 单阶段方法的最核心优势是速度非常快…...

U8G2在PC端模拟(C语言版本)

前提&#xff1a; 电脑已经准备好mingw编译器环境&#xff0c;已经加入环境变量. 测试方法&#xff1a; window下打开cmd,输入gcc -v 会有信息打印. u8g2 u8g2官方支持sdl2接口&#xff0c;已经做好了适配. 所以只需要在使用的开发环境配置好SDL2路径即可. sdl2和u8g2的适配…...