- 博客(70)
- 收藏
- 关注
原创 线性代数-3Blue1Brown《线性代数的本质》逆矩阵、列空间、秩与零空间(8)
本文是3B1B《线性代数的本质》系列视频的学习笔记,重点探讨了逆矩阵、列空间、秩与零空间的核心概念。通过线性变换的视角,文章首先解释了线性方程组的矩阵表示及其几何意义。随后详细介绍了逆矩阵的存在条件(行列式非零)及其与空间压缩的关系,阐述了列空间作为矩阵列向量张成空间的本质。文章还分析了秩作为列空间维度的定义及其与可逆性的联系,并解释了零空间包含被压缩到原点的向量集合的特性。最后通过表格总结了这些概念在数学定义、几何意义及与可逆性关系三个维度的对比,帮助读者建立对线性代数核心概念的直观理解。
2025-12-19 19:20:25
922
原创 OpenCV 学习10-边缘检测(Edge Detection)
返回值返回一个 二值图像(NumPy 数组)像素值255表示检测到的边缘点,0表示非边缘点参数说明参数类型说明imageNumPy 数组输入图像,灰度图(Grayscale)。如果是彩色图用 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 转换threshold1float低阈值,用于弱边缘检测threshold2float高阈值,用于强边缘检测,必须大于 threshold1。强梯度超过此值才被认为是“真实边缘”int (可选)
2025-12-19 15:06:41
974
原创 OpenCV 学习9-灰度转黑白二值图像
图像二值化是将灰度或彩色图像简化为黑白两种状态的处理方法,在OCR识别、条形码读取、医学图像处理等场景中广泛应用。OpenCV提供的cv2.threshold()函数通过设定阈值实现二值化,支持多种阈值类型,包括二进制阈值化、反向二进制等。其中OTSU算法能自动计算最优阈值,通过最大化类间方差实现最佳分割效果。该方法通过保留关键结构、去除冗余信息,有效提升了图像处理效率。
2025-12-16 10:20:22
868
原创 OpenCV 学习8-使用卷积进行图像滤波
本文介绍了图像滤波的基本概念和应用。图像滤波是一种数字图像处理技术,通过卷积核运算实现去噪、边缘检测、增强等效果。文章首先分析了实际需求和应用场景(如医学影像、自动驾驶等),然后详细解释了噪声类型(高斯噪声、椒盐噪声等)及其处理方法。重点介绍了卷积核的工作原理,包括恒等核、模糊核(均值滤波、高斯滤波)等不同类型核的特点和使用方法。最后讲解了OpenCV中的filter2D函数,说明了其参数配置和卷积运算过程。这些技术可广泛应用于图像质量改善、特征提取等任务。
2025-12-15 16:21:19
776
原创 线性代数-3Blue1Brown《线性代数的本质》行列式(7)
本文探讨行列式的本质,指出传统教材缺乏直观解释。基于3Blue1Brown《线性代数的本质》,行列式被理解为线性变换的空间缩放因子:其绝对值表示面积/体积的缩放倍数,符号反映空间定向是否翻转。当行列式为零时,表示空间被压缩到低维度,导致信息丢失,这也解释了为何行列式为零的矩阵不可逆。文章还给出了2×2和3×3矩阵的行列式计算公式。通过几何视角,揭示了行列式的直观意义,弥补了传统计算方法的不足。
2025-12-12 14:28:14
1453
原创 OpenCV 学习7-图像标注
本文介绍了使用OpenCV在图像上绘制标注信息的常用方法,包括画线、圆、矩形、椭圆和文本。详细说明了各函数的参数定义和使用注意事项,如颜色使用BGR格式、线型选择(包括抗锯齿处理)以及填充方式(通过thickness参数控制)。通过具体代码示例演示了如何实现这些标注功能,并附有相关效果图。文中特别强调了一些关键点,如图像必须可修改、坐标点定义方式以及不同图形绘制的参数设置技巧。这些标注方法适用于图像处理中的标记、注释等应用场景。
2025-12-12 11:26:46
690
原创 OpenCV 学习6-图像平移
本文补充了图像旋转的原理,重点介绍了图像平移的实现方法。通过2×3变换矩阵M,其中tx控制水平移动方向(正右负左),ty控制垂直移动方向(正下负上)。文中提供了Python代码示例,使用OpenCV的warpAffine()函数实现图像平移,包含读取图像、定义变换矩阵、执行平移和显示结果四个步骤。代码演示了将图像向右平移100像素、向上平移100像素的具体实现过程。
2025-12-10 14:14:29
821
原创 计算机视觉-OpenCV-学习系列
该系列文章记录了博主学习OpenCV图像处理的过程,从基础概念到具体操作逐步深入。内容包括:计算机图像基础知识、OpenCV简介、图像读取/显示/保存、尺寸调整、裁剪、旋转与平移原理、图像标注、卷积滤波、灰度转二值化以及边缘检测等技术要点。文章按学习进度更新,系统性地介绍了OpenCV的常用图像处理功能。
2025-12-10 08:55:08
286
原创 OpenCV 学习5-你知道图像旋转的原理吗?
本文介绍了图像旋转的数学原理及OpenCV实现方法。首先阐述了二维坐标系中点的旋转变换公式,并指出直接应用会导致图像绕左上角旋转的问题。正确的做法是采用"平移-旋转-平移回"三步法实现以图像中心为轴的旋转。文章详细推导了仿射变换矩阵的计算过程,并提供了OpenCV中的关键函数说明:getRotationMatrix2D()用于生成变换矩阵,warpAffine()执行变换。最后给出Python代码示例,演示了45度旋转的实现方法,同时讨论了避免图像裁剪和修改背景色等常见问题解决方案。
2025-12-09 16:51:15
1633
原创 Numpy学习4-视图和复制
在使用 NumPy 进行数据处理时,理解 视图(view) 和 复制(copy)之间的区别至关重要,直接关系到代码的性能和正确性。在不确定时,一定要用代码实测。
2025-12-09 14:16:51
163
原创 数学基础-线性代数-学习系列
该系列文章基于3Blue1Brown的《线性代数的本质》视频课程,系统讲解了线性代数核心概念。内容涵盖向量本质、线性组合与基、矩阵与线性变换、矩阵乘法、三维空间变换、行列式几何意义,以及逆矩阵、列空间、秩和零空间等关键知识点。博主以可视化方式深入浅出地解析线性代数的几何本质,帮助读者建立直观理解。文章按学习进度持续更新,适合希望从几何角度掌握线性代数的学习者。
2025-12-08 15:57:13
235
原创 Numpy学习3-数组切片
本文系统总结了NumPy数组切片操作的核心要点和使用方法。主要内容包括:1)切片返回视图而非副本,修改会影响原数组;2)一维数组切片语法及常见操作(取前后n个元素、步长选择、反转等);3)二维数组行列切片技巧(提取子矩阵、条件筛选、花式索引等);4)三维数组分层切片方法(获取特定层、行列选择等)。文中通过表格形式清晰展示了各种切片场景的语法示例和输出结果,是处理多维数组数据的高效参考指南。掌握这些切片技巧能显著提升数组操作效率。
2025-12-07 20:28:21
400
原创 线性代数-3Blue1Brown《线性代数的本质》矩阵与线性变换-三维空间(6)
摘要:三维空间的线性变换完全由基向量$\hat{i}$、$\hat{j}$、$\hat{k}$的变换结果决定。将变换后的基向量坐标作为列向量排列,即可构造变换矩阵。任意向量$\begin{bmatrix}a\b\c\end{bmatrix}$经变换后的新坐标,可通过矩阵乘法计算为各基向量变换结果的线性组合。这种表示方法与二维情形类似,体现了线性变换的矩阵表示原理。
2025-12-05 17:52:04
465
原创 OpenCV 学习4 - 裁剪图像
摘要:本文介绍了使用OpenCV进行图像裁剪的方法,基于NumPy数组切片操作实现。主要内容包括:1)图像裁剪坐标说明和基本语法;2)代码示例演示如何显示和保存裁剪区域;3)九宫格绘制方法,通过计算图像分块坐标并绘制矩形框实现。所有示例均包含完整的Python代码实现,涵盖了图像读取、处理、显示和保存的全流程操作。
2025-12-05 16:18:31
317
原创 OpenCV 学习3 -调整图像大小
摘要:本文介绍了OpenCV中resize()函数的使用方法,包括参数说明和常见插值算法。重点讲解了两种调整图像大小的方式:1)直接指定目标尺寸(width,height);2)使用缩放因子(fx,fy)按比例调整。文中提供了代码示例,演示了如何缩小/放大图像,并比较了不同插值方法的效果。注意事项包括:减小尺寸需要重新采样,增大尺寸需插入新像素,以及保持原始宽高比的重要性。最后展示了使用INTER_AREA(适合缩小)和INTER_CUBIC(适合放大)的具体实现代码。
2025-12-05 12:40:04
429
1
原创 OpenCV 学习2 - 读取、显示和写入图像
本文介绍了OpenCV中三个基础图像处理函数:imread()用于读取图像并返回NumPy数组,支持不同解码方式;imshow()用于显示图像窗口;imwrite()用于保存图像数据到文件。文章提供了详细的函数语法说明、参数解释和代码示例,包括读取显示图像、创建随机图像并保存等操作。还介绍了waitKey()函数控制图像窗口显示时间的用法,并给出了OpenCV安装命令和国内镜像源。这些函数是图像处理和计算机视觉应用的基础操作。
2025-12-04 22:17:34
411
原创 OpenCV 学习1-OpenCV是什么?
本文介绍了OpenCV计算机视觉库的基本情况。作为开源跨平台库,OpenCV提供图像处理、特征提取、目标检测、深度学习集成等核心功能,支持C++、Python等多种语言。其广泛应用于人脸识别、自动驾驶、工业质检、医学影像等十余个领域,典型应用包括使用Haar级联检测人脸、YOLO模型进行目标识别等。作为BSD许可的开源项目,OpenCV在学术研究和商业开发中都具有重要价值。
2025-12-03 16:56:34
502
原创 线性代数-3Blue1Brown《线性代数的本质》矩阵乘法与线性变换复合(5)
摘要:传统线性代数教学往往机械地教授矩阵乘法的计算规则,而忽略了其几何本质。通过3Blue1Brown的视频,我们认识到矩阵乘法实际上是线性变换的复合过程。以两个矩阵A和B为例,先进行变换A再进行变换B,整体效果对应矩阵乘积BA而非AB,这体现了变换顺序的重要性。矩阵乘法不满足交换律,反映了空间变换的顺序依赖性。最终理解矩阵乘法不是枯燥运算,而是描述空间变换如何衔接的"舞蹈编排"。(149字)
2025-12-03 10:30:50
1303
1
原创 什么是算力?
算力(Computing Power)是指计算机在单位时间内完成计算任务的能力,通常用来衡量处理器执行数学运算的速度。通俗比喻算力如同汽车的“马力”——马力越大,加速越快;算力越强,处理数据越高效。专业定义算力表示每秒可执行的计算操作次数,常见于 CPU、GPU、NPU、TPU 等芯片的性能评估中。
2025-12-02 15:08:16
688
原创 CPU、GPU、NPU、TPU
CPU是“万能大脑”,适合控制和通用任务。GPU是“并行劳工”,擅长图像和大规模并行计算。NPU是“AI小助手”,专为终端AI推理优化,高效节能。TPU是“AI超级工厂”,谷歌打造的大规模AI训练利器。
2025-12-02 13:16:32
365
原创 计算机中的图像是什么?
图像处理和“理解”是计算机视觉(Computer Vision)的核心领域。理解图像如何被表示,是第一步也是最关键的一步。所有图像都是“数据”,以某种数据结构被存储和处理的一组组数字。根据表示方式的不同,图像可以分为位图和矢量图两大类。可以把位图想象成一幅巨大的“十字绣”或“乐高拼图”,每一格都有自己的颜色。图像的分辨率描述的就是像素的排列方式,即图像的宽度和高度分别有多少个像素点。分辨率 = 图像宽度(像素) × 图像高度(像素)比如 1920 × 1080, 表示图像宽 1920 像素、高 1080
2025-12-01 15:14:32
876
原创 线性代数-3Blue1Brown《线性代数的本质》矩阵与线性变换(4)
本文摘要:文章解析了线性代数中线性变换的核心概念,通过二维平面的几何变换直观展示线性变换的本质。线性变换需保持直线性、原点固定和网格平行等距。矩阵被视为变换的"动作说明书",其列向量表示变换后的基向量位置。任何向量的变换结果可通过基向量的线性组合计算得出,具体公式为矩阵与向量的乘法运算。理解矩阵应关联其对应的空间变换动画,而非仅视作数字阵列。
2025-11-29 23:52:24
905
原创 线性代数-3Blue1Brown《线性代数的本质》线性组合、张成空间与基(3)
本文介绍了向量空间的基本概念:1)基向量是构成向量空间的基本单位,如二维空间的î和ĵ;2)线性组合是通过缩放和相加向量生成新向量的操作;3)张成空间是所有可能线性组合构成的向量集合。文中还解释了线性相关与无关的概念:相关向量组中存在冗余向量,而不相关向量组中每个向量都提供新的维度。这些概念的关系可类比为:基向量是积木模块,线性组合是搭建方法,张成空间是所有可能搭建结果。理解这些基础概念对掌握线性代数至关重要。
2025-11-29 16:34:51
1023
原创 线性代数-3Blue1Brown《线性代数的本质》向量究竟是什么(2)
本文介绍了向量的三种视角:物理视角(带方向的箭头)、计算机视角(有序数字列表)和数学视角(满足运算规则的抽象对象)。重点讲解了二维向量的几何理解、加法运算(位移合成)和标量乘法(长度缩放与方向反转),通过具体示例展示了向量运算的计算方法。这些基础概念为理解线性代数提供了直观的几何视角。
2025-11-28 17:57:00
838
原创 线性代数-为什么要学习掌握线性代数(1)
本文记录了作者开始深入学习线性代数以理解AI数学基础的计划。重点推荐3Blue1Brown、MIT公开课等学习资源,强调实践导向的学习方法:结合Python/Numpy实操,项目驱动,聚焦向量、矩阵、特征值等核心概念,避免陷入纯数学理论。学习目标是掌握AI模型背后的线性代数原理。
2025-11-28 13:49:01
315
原创 Python之List、Tuple、Dictionary、Set
本文介绍了Python中三种主要的数据结构:列表(List)、元组(Tuple)和字典(Dictionary)。列表是可变的有序序列,支持增删改查操作;元组是不可变的有序序列,适用于固定数据;字典是键值对集合,支持快速查找和修改。每种数据结构都有其特点和使用场景:列表灵活可变,元组安全高效,字典查询快速。文章详细说明了各种数据结构的创建、访问、修改和操作方法,并提供了丰富的代码示例,帮助读者掌握这些基础数据结构的核心用法。
2025-11-28 08:39:27
238
原创 Numpy学习2-创建ndarray数组
本文介绍了NumPy创建数组的多种方法:1) 从Python列表直接转换,支持自动类型推断;2) 使用zeros/ones/empty创建占位数组;3) 使用arange生成数字序列;4) zeros_like等创建同形数组;5) linspace生成等差数列;6) 使用random模块创建随机数数组;7) normal函数生成正态分布随机数;8) 其他方法如fromfunction和fromfile。每种方法都提供了示例代码,展示了如何控制数组形状、数据类型等参数,适用于科学计算和数据分析中的不同场景。
2025-11-27 14:05:10
419
原创 Numpy学习1-为什么需要学习Numpy?
NumPy(ericalthon 的简称)是 Python 中用于科学计算的核心库之一。它提供了一个强大的 多维数组对象(ndarray),以及一系列用于高效处理这些数组的数学函数。NumPy 是许多数据科学和机器学习库(如 Pandas、SciPy、Scikit-learn、Matplotlib 等)的基础。如今,NumPy 已成为 Python 科学计算生态系统的基石。
2025-11-27 13:51:16
133
原创 Python pip使用简介和国内镜像下载
pip是 Python 的官方包管理工具,用于安装和管理第三方库(也称为“包”或“模块”)。自 Python 3.4 起,pip默认随 Python解释器安装,通过命令行使用pip命令进行包的安装、卸载、升级等操作。通过检查pip是否安装。pip。
2025-11-27 13:37:18
212
原创 ConfigurationManager读取app.config、web.config配置文件
ConfigurationManager读取app.config、web.config配置文件ConfigurationManager读取AppSettings读取ConnectionString读取自定义节点ConfigurationManagerConfigurationManager常用来读取程序的配置文件,比如AppSettings、ConnectionStrings,以及自定义的节点。读者可以根据需要再深入了解类提供的其它功能。本文已下图的配置文件为例。读取AppSettingsstr
2020-07-27 15:44:12
1402
原创 HTML canvas系列-结合QRCode.js画二维码(9)
HTML canvas系列-结合QRCode.js画二维码(9)1、QRCode.js2、3、示例1、QRCode.jsQRCode.js是用于制作QRCode的JavaScript库。通过 HTML5 Canvas 绘制,不依赖任何库。2、定义一个div作为qrcode的容器,QRCode将在容器中创建canvas标签创建二维码将二维码canvas转换为二维码图像将图像绘制到新的canvas画布中3、示例<!DOCTYPE html><html> <
2020-05-23 16:45:28
1385
1
原创 HTML canvas系列-画线模糊问题(8)
HTML canvas系列-画线模糊问题(8)1、devicePixelRatio2、scale方法3、示例1、devicePixelRatiodevicePixelRatio 返回当前显示设备的物理像素分辨率与 CSS 像素分辨率的比率。这个属性使得浏览器确定使用多少个屏幕的实际像素来绘制单个 CSS 像素。canvas使用 window.devicePixelRatio 以确定应该添加多少额外的像素得到清晰的图像。2、scale方法canvas缩放方法。3、示例<!DOCTYPE h
2020-05-22 10:45:20
439
原创 HTML canvas系列-绘制空心文本(7)
HTML canvas系列-绘制空心文本(7)1、方法2、属性3、示例 -绘制文本1、方法strokeText(text,x,y)参数说明text文本x开始的x坐标y开始的y坐标2、属性font 字体 “bold 40px 宋体”; 样式有 normal, italic, or bold,默认是normallineWidth 线框strokeStyle字体颜色3、示例 -绘制文本<!DOCTYPE html><ht
2020-05-22 09:01:36
1023
原创 HTML canvas系列-绘制实心文本(6)
HTML canvas系列-绘制实心文本(6)1、方法2、属性3、示例 -绘制文本1、方法fillText(text,x,y)参数说明text文本x开始的x坐标y开始的y坐标2、属性font 字体 “bold 40px 宋体”; 样式有 normal, italic, or bold,默认是normalfillStyle 字体颜色3、示例 -绘制文本<!DOCTYPE html><html> <head
2020-05-21 16:14:43
762
原创 HTML canvas系列-画图(5)
HTML canvas系列-画图(5)1、画图2、画图并设置图像大小3、裁剪图像1、画图方法定义context.drawImage(img,x,y);参数说明img图像x图像在画布开始的x坐标y图像在画布开始的y坐标示例<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>画图</title> &
2020-05-21 15:46:28
196
原创 HTML canvas系列-画圆(4)
HTML canvas系列-画矩形(3)1、画圆步骤2、属性(样式)3、示例 -绘制圆1、画圆步骤画圆使用beginPath、arc、fill、stroke方法。beginPath 开始绘制新路径arc 根据中点、半径、角度画圆方法定义context.arc(x,y,r,sAngle,eAngle,counterclockwise);参数说明x圆中心 x 坐标y圆中心 y 坐标r半径sAngle起始角 弧度eAngle结束角 弧
2020-05-21 14:43:38
1235
原创 HTML canvas系列-画矩形(3)
HTML canvas系列-画矩形(3)1、画矩形步骤2、属性(样式)3、示例 -绘制矩形1、画矩形步骤画矩形使用beginPath、rect、fill、stroke方法。beginPath 开始绘制新路径rect 根据开始坐标、宽、高绘制矩形fill 填充矩形颜色(可省略)stroke 显示矩形2、属性(样式)linewidth 线宽strokeStyle 矩形线条颜色fillStyle 矩形内填充颜色3、示例 -绘制矩形<!DOCTYPE html>
2020-05-19 09:02:53
548
原创 HTML canvas系列-画线条(2)
HTML canvas系列-画线条(2)1、画线步骤2、属性(样式)3、示例 -绘制线条1、画线步骤画线条使用beginPath、moveTo、lineTo、stroke方法。beginPath 表示开始绘制新路径moveTo 定位绘制开始位置lineTo 从开始位置绘制一条直线到目标位置stroke 显示线条2、属性(样式)linewidth 线宽strokeStyle 颜色lineCap 线端头样式,包括:butt、round、square三种,默认是butt。3、
2020-05-18 17:27:05
418
原创 HTML canvas系列-入门(1)
HTML canvas系列-入门(1)1、canvas元素2、上下文3、画布坐标4、主要功能5、示例--绘制Hello World!说明:网上资料很多,本文不对canvas进行详细介绍,着重于应用1、canvas元素canvas 是用于结合脚本语言(通常为JavaScript)绘制图表、动画的HTML元素。<canvas id="chart" width="150" height="150"></canvas>如不设置宽度和高度,canvas初始化宽度为300px和高度为
2020-05-18 16:47:35
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅