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

【IPMV】图像处理与机器视觉:Lec11 Keypoint Features and Corners

【IPMV】图像处理与机器视觉:Lec11 Keypoint Features and Corners

本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记
Lecturer: Rui Fan、Yanchao Dong


Lec0 Course Description

Lec3 Perspective Transformation

Lec7 Image Filtering

Lec8 Image Pyramid

Lec9 Laplace Blending

持续更新中

文章目录


1 Keypoint Features

特征点的特征:

  • Repeatability
  • Distanctiveness
  • Efficiency
  1. 识别特征 (Extract features)
  2. 匹配特征 (Match features)
  3. 对齐图像 (Align images)

应用

全景拼接
Panoramas Stitching
物体识别
Objection Recognition
3D重建和导航
3D Reconstruction and Navigation
  • Corner features

  • Blob features

  • Feature descriptors

  • Feature matching

  • Homography estimation from correspondences

  • World geometry and #D

  • Scene analysis


2 Corner Features

2.1 数学描述:梯度

  • Flat region
  • Edge
  • Corner

数学表述

E ( u , v ) = ∑ x , y w ( x , y ) [ I ( x + u , y + v ) − I ( x , y ) ] 2 E(u,v) = \sum_{x,y} w(x,y) [I(x+u, y+v)-I(x,y)]^2 E(u,v)=x,yw(x,y)[I(x+u,y+v)I(x,y)]2

  • E ( u , v ) E(u,v) E(u,v)衡量窗口移动后的亮度变化,用于区分平坦、边缘、角落区域。
    • 对于平坦区域:窗口移动时,图像亮度几乎不变; E ( u , v ) E(u,v) E(u,v)很小
    • 对于边缘:沿边缘移动时亮度不变,垂直移动时变化明显; E ( u , v ) E(u,v) E(u,v) 沿边缘方向变化小,垂直方向变化大
    • 对于角落:无论怎么移动窗口,图像亮度都会变化; E ( u , v ) E(u,v) E(u,v)在所有方向变化都大
  • 窗口函数 w ( x , y ) w(x,y) w(x,y):控制窗口内像素的权重
    • 矩形窗口
    • 高斯窗口:减少噪声影响


2.2 简化描述:Taylor Expasion

泰勒展开近似

E ( u , v ) ≈ [ u v ] [ ∑ w ( x , y ) I x 2 ∑ w ( x , y ) I x I y ∑ w ( x , y ) I x I y ∑ w ( x , y ) I y 2 ] [ u v ] = [ u v ] [ A B B C ] [ u v ] = [ u v ] M [ u v ] E(u,v)\approx \begin{bmatrix} u & v \end{bmatrix}\begin{bmatrix} \sum {w(x,y)I_x^2} & \sum {w(x,y)I_x I_y} \\ \sum {w(x,y)I_x I_y} & \sum {w(x,y)I_y^2} \end{bmatrix}\begin{bmatrix} u \\ v \end{bmatrix} =\begin{bmatrix} u & v \end{bmatrix}\begin{bmatrix} A & B \\ B & C \end{bmatrix}\begin{bmatrix} u \\ v \end{bmatrix} =\begin{bmatrix} u & v \end{bmatrix}M\begin{bmatrix} u \\ v \end{bmatrix} E(u,v)[uv][w(x,y)Ix2w(x,y)IxIyw(x,y)IxIyw(x,y)Iy2][uv]=[uv][ABBC][uv]=[uv]M[uv]

二阶矩阵M

  • M = ∑ x , y w ( x , y ) [ A B B C ] = ∑ x , y w ( x , y ) [ I x I y ] [ I x I y ] M = \sum_{x,y} w(x,y)\begin{bmatrix} A & B \\ B & C \end{bmatrix}=\sum_{x,y} w(x,y)\begin{bmatrix} I_x \\ I_y \end{bmatrix}\begin{bmatrix} I_x & I_y \end{bmatrix} M=x,yw(x,y)[ABBC]=x,yw(x,y)[IxIy][IxIy]
  • 描述窗口内图像的梯度分布
  • 特征值 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2 决定区域类型
垂直边缘 I x = 0 I_x = 0 Ix=0 M = [ 0 0 0 C ] M = \begin{bmatrix} 0 & 0 \\ 0 & C \end{bmatrix} M=[000C]
水平边缘 I y = 0 I_y = 0 Iy=0 M = [ A 0 0 0 ] M = \begin{bmatrix} A & 0 \\ 0 & 0 \end{bmatrix} M=[A000]

2.3 进一步简化:特征值和特征向量

M M M的特征值和特征向量:

  • 特征值: λ = 1 2 [ ( A + C ) ± 4 B 2 + ( A − C ) 2 ] \lambda = \frac{1}{2}[(A+C)\pm \sqrt{4B^2+(A-C)^2}] λ=21[(A+C)±4B2+(AC)2 ]
  • 特征向量:齐次方程 [ A − λ B B C − λ ] x = 0 \begin{bmatrix} A-\lambda & B \\ B & C - \lambda \end{bmatrix}\bm{x}=0 [AλBBCλ]x=0的解
    • x m a x \bm{x}_{max} xmax(最大特征向量):图像在这个窗口内变化最剧烈的方向
      • 比如边缘区域的垂直边缘方向
    • λ m a x λ_{max} λmax(最大特征值):这个方向上的变化强度,值越大表示这个方向变化越剧烈
    • x m i n \bm{x}_{min} xmin(最小特征向量):变化最平缓的方向
      • 比如边缘区域的沿着边缘方向
    • λ m i n λ_{min} λmin(最小特征值):这个方向上的变化强度,值越小表示这个方向越稳定
  • 如何判定?
    • 两个小 → 平坦
    • 一大一小 → 边缘
    • 两个大 → 角点

近似前后对比举例:

区域类型实例场景梯度描述泰勒展开近似特征值
平坦区域在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 λ m i n = 0.4 \lambda_{min}=0.4 λmin=0.4
边缘区域在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 λ m i n = 1.2 \lambda_{min}=1.2 λmin=1.2
角点区域在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 λ m i n = 272 \lambda_{min}=272 λmin=272

2.4 角点检测步骤总结

  • 使用高斯导数计算图像中每个点的梯度
  • 根据梯度创建二阶矩阵 M M M
  • 计算特征值
  • 找出响应较大的点( λ m i n λ_{min} λmin > 阈值)
  • 选择 λ m i n λ_{min} λmin为局部最大值的点作为特征点

2.5 The Harris operator: λ m i n \lambda_{min} λmin计算简化

  • λ m i n λ_{min} λmin的近似值(需要开根号,很麻烦)
    • 角点响应 = λ 1 ⋅ λ 2 − 0.06 ⋅ ( λ 1 + λ 2 ) 2 = det ⁡ ( M ) − 0.06 ⋅ t r a n c e ( M ) 2 角点响应 = λ₁·λ₂ - 0.06·(λ₁+λ₂)² = \det(M)-0.06\cdot trance(M)^2 角点响应=λ1λ20.06(λ1+λ2)2=det(M)0.06trance(M)2
    • 响应值大 → \rightarrow 角点
  • Harris Operator特性
    • 平移不变性:位置协变+导数计算窗口函数不变
    • 旋转不变性:位置协变
    • 光照部分协变性:亮度平移( I → I + b I→I+b II+b)不变性和缩放( I → a I I→aI IaI)部分鲁棒性
    • 尺度敏感性:图像缩放时,角点可能被误判为边缘 (小尺度角点在大尺度下变平缓,大尺度角点在小尺度下可能消失);结合多尺度方法(如SIFT)解决
  1. 优势
    • 对平移、旋转、轻度光照变化稳定,适合大多数场景。
    • 计算高效,实时性好。
  2. 短板
    • 怕缩放:必须搭配多尺度检测(如金字塔方法)才能适应不同大小的物体。
    • 非万能:极端光照或模糊场景需结合其他特征(如SIFT/SURF)。
  3. 改进方向
    • 尺度鲁棒性:自适应尺度选择,在位置和尺度空间同时寻找响应最大值(如Harris-Laplace)。

3 总结

  • 数学描述:亮度梯度
  • 简化
    • 泰勒展开
    • M M M特征值和特征向量
  • 角点检测步骤
  • Harris Operator
    • λ m i n \lambda_{min} λmin的近似
    • 尺度敏感

使用亮度梯度值定量描述角点,使用泰勒线性展开对平方运算进行简化,进一步用 M M M的特征值和特征向量进行描述,进一步使用Harris operator对于最小特征值的开方运算进行了简化

相关文章:

【IPMV】图像处理与机器视觉:Lec11 Keypoint Features and Corners

【IPMV】图像处理与机器视觉:Lec11 Keypoint Features and Corners 本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记 Lecturer: Rui Fan、Yanchao Dong Lec0 Course Description Lec3 Perspective Transformation Lec7 Image Filtering Lec8 I…...

C++23 中的 ranges::starts_with 与 ranges::ends_with

文章目录 功能介绍ranges::starts_withranges::ends_with 示例代码编译器支持总结 C23 标准引入了 ranges::starts_with 和 ranges::ends_with,这两个算法由提案 P1659R3 提出,旨在为任意范围提供检查前缀和后缀的功能。 功能介绍 ranges::starts_wit…...

2025 uniapp的请求封装工具类以及使用【拿来就用】

一、创建一个http请求封装的js文件,名字自定义:my_http.js /*** 基础API请求地址(常量,全大写命名规范)* type {string}* constant*/ let BASE_URL //通过环境来判断基础路径 if (process.env.NODE_ENV development…...

Axure设计之内联框架切换页面、子页面间跳转问题

在Axure中,你可以通过以下步骤实现主页面中的内联框架在点击按钮时切换页面内容,从A页面切换到B页面。(误区:子页面之间切换不要设置“框架中打开链接”然后选“父级框架”这个交互) 主框架页面(左侧导航展…...

PyTorch 中神经网络相关要点(损失函数,学习率)及优化方法总结

笔记 1 神经网络搭建和参数计算 1.1 构建神经网络模型 import torch import torch.nn as nn # 线性模型和初始化方法 ​ ​ # todo:1-创建类继承 nn.module类 class ModelDemo(nn.Module):# todo:2-定义__init__构造方法, 构建神经网络def __init__(self):# todo:2-1 调用父…...

适用于 iOS 的 开源Ultralytics YOLO:应用程序和 Swift 软件包,用于在您自己的 iOS 应用程序中运行 YOLO

​一、软件介绍 文末提供程序和源码下载 该项目利用 Ultralytics 最先进的 YOLO11 模型将您的 iOS 设备转变为用于对象检测的强大实时推理工具。直接从 App Store 下载该应用程序,或浏览我们的指南,将 YOLO 功能集成到您自己的 Swift 应用程序中。 二、…...

why FPGA喜欢FMC子卡?

FMC 即 FPGA Mezzanine Card ( FPGA中间层板卡),由子板模块、载卡两构成。 FMC 载卡:为子板模块提供插槽,使用母座FMC连接器。载卡连接器引脚与具有可配置IO资源的芯片例如FPGA引脚通过PCB设计连接在一起。。 盘古100…...

【优选算法 | 字符串】字符串模拟题精选:思维+实现解析

算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表哈希表 在众多字符串算法题中,有一类题目看起来没有太多算法技巧,却经常让人“翻车”——那就是字符串模拟题。这类题型往往不依赖复杂的数据…...

比亚迪固态电池突破:王传福的技术哲学与产业重构|创客匠人热点评述

合肥某车间凌晨两点依然灯火通明,工程师正在调试的银白色设备,即将颠覆整个电动车行业 —— 比亚迪全固态电池产线的曝光,标志着中国新能源汽车产业正式迈入 “技术定义市场” 的新纪元。 一、技术突破的底层逻辑 比亚迪全固态电池的核心竞…...

UUG杭州站 | 团结引擎1.5.0 OpenHarmony新Feature介绍

PPT下载地址:https://u3d.sharepoint.cn/:b:/s/UnityChinaResources/EaZmiWfAAdFFmuyd6c-7_3ABhvZoaM69g4Uo2RrSzT3tZQ?e2h7RaL 在2025年4月12日的Unity User Group杭州站中,Unity中国OpenHarmony技术负责人刘伟贤带来演讲《团结引擎1.5.0 OpenHarmony新…...

OpenHarmony轻量系统--BearPi-Nano开发板网络程序测试

本文介绍RISC-V架构海思Hi3861开发板,通过Linux开发环境运行OpenHarmony轻量化系统,下载测试网络例程的过程与步骤。 OpenHarmony操作系统分类 轻量系统(mini system) 面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备&#x…...

k8s 中使用 Service 访问时NetworkPolicy不生效问题排查

背景 针对一个服务如下NetworkPolicy, 表示只有n9e命名空间的POD才能访问 k8s-man 服务 kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata:name: k8s-mannamespace: n9elabels:app: k8s-manversion: v1 spec:podSelector:matchLabels:app: k8s-manversion: v1…...

2025 AI如何重构网络安全产品

威胁检测与防御 利用机器学习算法提升威胁检测能力 :AI能够分析大量的网络数据和行为模式,通过机器学习算法自动识别出潜在的威胁和异常行为。例如,Darktrace的Cyber AI Analyst基于真实SOC数据训练,可推进威胁调查,提…...

ARM杂谈——临界段保护恢复的中断状态可靠吗

0 前言 在MCU中,临界段保护是指在多任务或多线程环境中,确保某段代码在执行时不会被其他任务或中断打断,从而避免数据竞争或不一致的问题。临界段保护通常用于共享资源的访问,如全局变量、硬件寄存器等。 我们有一些常用的临界段…...

数据库MySQL学习——day10()

文章目录 1. 什么是子查询(Subquery)?2. 创建样例表:商品表 products3. 插入示例数据4. 子查询的三种常用位置4.1 子查询在 WHERE 子句中(最常见)4.2 子查询在 FROM 子句中(可以当成临时表&…...

YashanDB V23.4 LTS 正式发布|两地三中心、库级闪回重磅特性上线,生产级可用性再升级

近日,YashanDB V23.4 LTS(Long-Term Support Release)版本正式发布,新版本深度契合关键行业数字化转型对数据库“业务永续、风险可控”的核心诉求,打造两地三中心秒级容灾、库级闪回秒级恢复、MySQL全面兼容等重磅特性…...

AI规则引擎:解锁SQL数据分析新姿势

一、AI 规则引擎与 SQL 的奇妙邂逅 在当今数字化时代,数据如同石油,是企业发展和创新的核心驱动力。而如何从海量的数据中提取有价值的信息,成为了企业面临的关键挑战。人工智能规则引擎和 SQL,作为数据分析领域的两大重要工具&a…...

Kotlin Multiplatform与Flutter、Compose共存:构建高效跨平台应用的完整指南

简介 在移动开发领域,跨平台技术正在重塑开发范式。Kotlin Multiplatform (KMP) 作为 JetBrains 推出的多平台开发框架,结合了 Kotlin 的简洁性与原生性能优势,使开发者能够高效共享业务逻辑。而 Flutter 凭借其高性能渲染引擎(Skia)和丰富的组件库,成为混合开发的首选方…...

FunASR:语音识别与合成一体化,企业级开发实战详解

简介 FunASR是由阿里巴巴达摩院开源的高性能语音识别工具包,它不仅提供语音识别(ASR)功能,还集成了语音端点检测(VAD)、标点恢复、说话人分离等工业级模块,形成了完整的语音处理解决方案。 FunASR支持离线和实时两种模式,能够高效处理多语言音频,并提供高精度的识别结果。…...

【Spark分析HBase数据】Spark读取并分析HBase数据

Spark读取并分析HBase数据 一、摘要二、实现过程三、小结 一、摘要 Apache Spark 是一个快速、通用的大数据处理引擎,提供了丰富的 API 用于数据处理和分析。HBase 是一个分布式、可扩展的 NoSQL 数据库,适合存储海量结构化和半结构化数据。Spark 与 HB…...

探索直播美颜SDK的核心算法:图像增强与AI美颜技术详解

一款优秀的直播美颜SDK不仅能让主播拥有完美的在线形象,还能帮助平台吸引更多用户。然而,这背后的关键在于其核心算法——从基本的图像增强到前沿的AI美颜技术,每一步都至关重要。今天,我们就来深入探讨这些技术背后的秘密。 一、…...

全新linux网络配置工具nmcli:

1.Linux全新网络管理工具nmcli的使用 ,网络管理命令行工具nmcli 在nmcli中有2个命令最为常用: (1)nmcli connection 表示连接,可理解为配置文件,相当于ifcfg-ethX。可以简写为nmcli c (2)nmcl…...

LeetCode100.5 盛最多水的容器

对于这题,首先明确的是:盛水的体积取决于两垂线间的距离与两垂线中最短的长度。 那么使用双指针,在每次移动时,只移动其中最短的那个,因为若移动最长的那个,体积不会变大。 class Solution { public:int …...

AI开发者的算力革命:GpuGeek平台全景实战指南(大模型训练/推理/微调全解析)

目录 背景一、AI工业化时代的算力困局与破局之道1.1 中小企业AI落地的三大障碍1.2 GpuGeek的破局创新1.3 核心价值 二、GpuGeek技术全景剖析2.1 核心架构设计 三、核心优势详解‌3.1 优势1:工业级显卡舰队‌‌‌3.2 优势2:开箱即用生态‌3.2.1 预置镜像库…...

Java元注解

Java 元注解(Meta-Annotations) 元注解是指用于注解其他注解的注解,Java 提供了5个内置的元注解: 1. Target 指定注解可以应用的目标元素类型。 Target(ElementType.TYPE) // 只能用于类、接口或枚举 public interface MyAnno…...

FPGA:Xilinx Kintex 7实现DDR3 SDRAM读写

在Xilinx Kintex 7系列FPGA上实现对DDR3 SDRAM的读写,主要依赖Xilinx提供的Memory Interface Generator (MIG) IP核,结合Vivado设计流程。以下是详细步骤和关键点: 1. 准备工作 硬件需求: Kintex-7 FPGA(如XC7K325T&…...

深度剖析 GpuGeek 实例:GpuGeek/Qwen3-32B 模型 API 调用实践与性能测试洞察

深度剖析 GpuGeek 实例:GpuGeek/Qwen3-32B 模型 API 调用实践与性能测试洞察 前言 GpuGeek专注于人工智能与高性能计算领域的云计算平台,致力于为开发者、科研机构及企业提供灵活、高效、低成本的GPU算力资源。平台通过整合全球分布式数据中心资源&#…...

散列表(1)

散列表概念 键通过散列函数后转换为数组的下标,在对应的下标位置上存储相应的信息 键------>散列函数-------->数组下标------->存储信息 散列函数 散列函数就是一个函数,能够将给定的key转换为特定散列值。hashValuehash(key&…...

E. 23 Kingdom【Codeforces Round 1024 (Div. 2)】

E. 23 Kingdom 思路: 这道题的核心在于如何构造一个数组b,使得每个数的最远两个出现位置之差总和最大。通过分析,我们发现要最大化总美丽值,应尽可能让每个数的首次出现尽可能靠左、末次出现尽可能靠右。这样每个数的距离贡献j-i…...

TTS-Web-Vue系列:Vue3实现侧边栏与顶部导航的双向联动

🔄 本文是TTS-Web-Vue系列的最新文章,重点介绍如何在Vue3项目中实现侧边栏与顶部导航栏的双向联动功能。通过Vue3的响应式系统和组件通信机制,我们构建了一套高效、流畅的导航联动方案,让用户在不同入口都能获得一致的导航体验。 …...

【C++】模板(初阶)

一、模板与泛型编程 我们先来思考一下:如何实现一个通用的交换函数? void Swap(int& left, int& right) {int temp left;left right;right temp; }void Swap(double& left, double& right) {double temp left;left right;right te…...

大模型微调实战:基于GpuGeek平台的低成本高效训练方案

文章目录 引言一、GpuGeek平台使用入门1. 注册与账号设置2. 控制台功能概览3. 快速创建GPU实例3. 预置镜像与自定义环境 二、GpuGeek平台核心优势解析1. 显卡资源充足:多卡并行加速训练2. 镜像超多:开箱即用的开发环境3. 计费灵活:按需付费降…...

黑马k8s(六)

1.Deployment(Pod控制器) Selector runnginx 标签选择:会找pod打的标签 执行删除之后,pod也会删除,Terminating正在删除 如果想要访问其中的一个pod借助:IP地址端口号访问 假设在某一个瞬间,…...

WEB安全--Java安全--CC1利用链

一、梳理基本逻辑 WEB后端JVM通过readObject()的反序列化方式接收用户输入的数据 用户编写恶意代码并将其序列化为原始数据流 WEB后端JVM接收到序列化后恶意的原始数据并进行反序列化 当调用: ObjectInputStream.readObject() JVM 内部逻辑: → 反…...

16S18S_OTU分析(3)

OTU的定义 OTU:操作分类单元是在系统发生学研究或群体遗传学研究中,为了便于进行分析,人为给某一个分类单元(如品系、种、属、分组等)设置的同一标志。目的:OTU用于将相似的序列归为一类,以便于…...

嵌入式开发学习日志(数据结构--单链表)Day20

一、gdb调试 (一)一般调试步骤与命令 1、gcc -g (调试版本,内含调试信息与源码;eg:gcc -g main.c linklist.c) 2、gdb a.out(调试可执行文件,eg:gdb …...

nginx报错-[emerg] getpwnam(“nginx“) failed in /etc/nginx/nginx.conf:2

报错 - nginx: [emerg] getpwnam(“nginx”) failed in /etc/nginx/nginx.conf:2 问题描述: nginx: [emerg] getpwnam(“nginx”) failed in /etc/nginx/nginx.conf:2 问题原因: 是因为配制文件中使用的启动账户在系统中并没有找到 解决方法&#x…...

Linux系统编程——fork函数的使用方法

在 Linux 系统编程 中,fork() 函数是创建新进程的关键系统调用。fork() 在当前进程(父进程)中创建一个几乎完全相同的子进程。子进程和父进程从调用 fork() 的位置继续执行,但它们是两个独立的进程,每个进程都有自己的…...

Linux进程信号处理(26)

文章目录 前言一、信号的处理时机处理情况“合适”的时机 二、用户态与内核态概念重谈进程地址空间信号的处理过程 三、信号的捕捉内核如何实现信号的捕捉?sigaction 四、信号部分小结五、可重入函数六、volatile七、SIGCHLD 信号总结 前言 这篇就是我们关于信号的最…...

黑马Java跟学.最新AI+若依框架项目开发(一)

黑马Java跟学.最新AI若依框架项目开发.一 前瞻为什么学习若依?AI局限性若依是什么?创新项目开发新方案课程安排前置知识 一、若依搭建若依版本官方非官方 RuoYi-Vue运行后端项目初始化项目Git下载Maven构建 MySQL相关导入sql配置信息 Redis相关启动配置信息 项目运…...

【自学30天掌握AI开发】第1天 - 人工智能与大语言模型基础

自学30天掌握AI开发 - 第1天 📆 日期和主题 日期:第1天 主题:人工智能与大语言模型基础 🎯 学习目标 了解人工智能的发展历史和基本概念掌握大语言模型的基本原理和工作机制区分不同类型的AI模型及其特点理解AI在当前社会中的…...

(十六)Java String类全面解析

一、String类概述 1.1 String的本质 在Java中,String类可能是使用最频繁的类之一,但它也是最容易被误解的类之一。从本质上讲,String代表的是一个不可变的Unicode字符序列。这种不可变性(immutability)是String类设计的核心特性。 java S…...

Android架构之自定义native进程

在Android五层架构中,native层基本上全是c的世界,这些c进程基本上靠android世界的第一个进程init进程创建,init通过rc配置文件,创建了众多的c子进程,也是这众多的c进程,构建了整个android世界的native层。 …...

#跟着若城学鸿蒙# HarmonyOS NEXT学习之AlphabetIndexer组件详解

一、组件介绍 AlphabetIndexer(字母索引条)是HarmonyOS NEXT中一个非常实用的UI组件,它主要用于在列表视图中提供快速的字母导航功能。当应用中有大量按字母顺序排列的数据(如联系人列表、城市列表等)时,A…...

React百日学习计划——Deepseek版

阶段一:基础巩固(1-20天) 目标:掌握HTML/CSS/JavaScript核心语法和开发环境搭建。 每日学习内容: HTML/CSS(1-10天) 标签语义化、盒模型、Flex布局、Grid布局、响应式设计(媒体查询…...

Room持久化库:从零到一的全面解析与实战

简介 在Android开发中,Room作为官方推荐的数据库持久化库,提供了对SQLite的抽象层,使得数据库操作更加安全、高效且易于维护。 Room通过注解处理器和编译时验证,显著降低了数据库操作的复杂度,同时支持响应式编程模式,使开发者能够轻松实现数据变化的实时监听。对于企业…...

Linux云计算训练营笔记day07(MySQL数据库)

数据库 DataBase 保存数据的仓库 数据库管理系统 DBMS 这是一个可以独立运行,用于维护磁盘上的数据的一套软件 特点: 维护性高,灵活度高,效率高,可扩展性强 常见的DBMS Mysql Mariadb Oracle DB2 SQLServer MySQL是一个关系型…...

C语言之旅5---分支与循环【2】

💫只有认知的突破💫才来带来真正的成长💫编程技术的学习💫没有捷径💫一起加油💫 🍁感谢各位的观看🍁欢迎大家留言🍁咱们一起加油🍁努力成为更好的自己&#x…...

K230 ISP:一种新的白平衡标定方法

第一次遇见需要利用光谱响应曲线进行白平衡标定的方法。很好奇是如何利用光谱响应曲线进行白平衡标定的。 参考资料参考:K230 ISP图像调优指南 K230 介绍 嘉楠科技 Kendryte 系列 AIoT 芯片中的最新一代 AIoT SoC K230 芯片采用全新的多核异构单元加速计算架构&a…...

【Web应用】Vue 项目前端项目文件夹和文件介绍

文章目录 ⭐前言⭐一、文件夹介绍🌟1、.idea🌟2、bin🌟3、build🌟4、node_modules🌟5、public🌟6、src ⭐二、文件介绍🌟1、.editorconfig🌟2、.env.development、.env.production、…...