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

al+大数据每日学习笔记15

2026年8月1日星期六

今天学习计算机视觉。

一、计算机视觉定义

计算机视觉(Computer Vision, CV):让计算机模仿人类视觉系统,从图像、视频中获取信息、理解内容;通过算法对画面进行检测、分割、识别、变换等操作。

计算机视觉分为两大分支:

  1. 传统图像处理(经典计算机视觉):人工设计算法与特征规则,无需训练神经网络,代表工具:OpenCV(这次学习的内容)
  2. 基于深度学习的计算机视觉:利用神经网络自动学习图像特征,需要数据集训练,代表方向:图像分类、目标检测、语义分割(YOLO、CNN 等)

二、OpenCV 传统图像处理

1. 图像读取、显示、保存与窗口控制

OpenCV 特性:默认读取彩色图像通道顺序为BGR(普通图片软件、matplotlib 使用 RGB,顺序不一样)

  1. cv2.imread(路径, 读取标识)
    • 默认:加载彩色图像
    • cv2.IMREAD_GRAYSCALE:直接以灰度单通道读取图片
  2. cv2.imshow(窗口名称, 图像数据)创建窗口展示图像
  3. cv2.waitKey(延时ms)
    • 参数 = 0:无限等待按键;大于 0:等待指定毫秒
    • 返回按键 ASCII 码;ESC 按键编码为 27,常用来退出程序
  4. cv2.destroyAllWindows():销毁全部窗口,释放内存资源(规范写法,防止内存占用)
  5. cv2.imwrite(保存路径,图像):将处理后的图像保存到本地

2. 图像基础属性与 ROI 感兴趣区域

图像本质是多维 numpy 数组:

img.shape:(高度 H, 宽度 W, 通道数);灰度图只有 (H,W)

img.size:图像总像素数量

img.dtype:像素数据类型,常规图像为uint8(像素范围 0~255)

ROI 感兴趣区域利用 numpy 切片提取图像局部区域:img[起始高:结束高, 起始宽:结束宽]用途:截取目标区域、局部打码、图片局部叠加。

3. 视频读取操作

cv2.VideoCapture(地址):读取本地视频 / 摄像头

isOpened()判断视频是否成功打开

  1. ret, frame = video.read():逐帧读取画面
    • ret:布尔值,判断是否成功读到帧
    • frame:当前帧图像(和图片格式一致,BGR 数组)
  2. 循环持续读取每一帧,实现视频播放
  3. 程序结束必须调用.release(),释放视频流资源

4. 颜色通道操作、色彩空间转换

彩色图像三维结构[H,W,通道]

[:,:,0]→ B 蓝色通道

[:,:,1]→ G 绿色通道

[:,:,2]→ R 红色通道

通道分离:b,g,r = cv2.split(img)

通道合并:img = cv2.merge((b,g,r))

  1. cv2.cvtColor(图像, 转换模式)色彩空间转换
    • cv2.COLOR_BGR2GRAY:彩色转灰度
    • cv2.COLOR_BGR2RGB:BGR 转为 RGB
    • cv2.COLOR_BGR2HSV:转换到 HSV 空间(常用于颜色筛选)

5. 图像缩放 cv2.resize ()

函数:cv2.resize(src, dsize, fx, fy)

src:原始图像

dsize:(宽度,高度),直接指定输出图像尺寸

fx、fy:水平、垂直方向缩放比例,dsize 设为 None 时生效示例:cv2.resize(img,None,fx=0.5,fy=0.5)图像长宽缩小一半

6. 图像像素算术运算

(1)直接相加img1 + img2

像素求和遵循取模运算,数值超过 255 时:总和 - 256例:260 → 4,画面容易出现异常噪点。

(2)cv2.add(img1,img2)饱和加法

像素相加上限锁定 255,超过 255 直接取 255;图像融合、提亮优先使用该 API

7. 边界填充 cv2.copyMakeBorder ()

作用:在图像上下左右扩充像素边框参数:src, top, bottom, left, right, borderType, value

top/bottom/left/right:四个方向扩充宽度

borderType 填充模式:

cv2.BORDER_CONSTANT填充固定颜色,配合 value 设置颜色

cv2.BORDER_REPLICATE直接复制图像最边缘像素向外延伸

cv2.BORDER_REFLECT镜面反射,包含边界像素镜像复制

cv2.BORDER_REFLECT_101(默认):镜像反射,不重复边界像素,最常用

cv2.BORDER_WRAP循环平铺方式填充

8. 阈值分割 threshold(二值化核心)

函数:ret, dst = cv2.threshold(灰度图, thresh, maxval, type)

thresh:设定阈值

maxval:最大值(仅二值模式生效)返回:ret = 使用的阈值;dst = 处理完成图像

五种阈值模式:

cv2.THRESH_BINARY:大于阈值→maxval,其余置 0

cv2.THRESH_BINARY_INV:反向二值,大于阈值置 0,其余设 maxval

cv2.THRESH_TRUNC:超过阈值统一改为阈值,低于阈值保持原值

cv2.THRESH_TOZERO:低于阈值归零,高于阈值不变

cv2.THRESH_TOZERO_INV:高于阈值归零,低于阈值不变

9. 图像噪声与滤波(平滑去噪)

椒盐噪声

随机在图像生成黑点 (像素 0)、白点 (像素 255) 脉冲噪声。

四类滤波器

均值滤波 cv2.blur ()【线性滤波】邻域内所有像素求平均值,实现画面模糊;无法有效去除椒盐噪声。参数:cv2.blur(图像,(核宽,核高))

方框滤波 cv2.boxFilter ()【线性滤波】

normalize=True:等价均值滤波(求平均)

normalize=False:邻域像素直接求和,容易像素溢出发白

高斯滤波 cv2.GaussianBlur ()【线性滤波】根据像素距离赋予权重,近处像素权重更高,模糊效果更加自然;适合去除高斯噪声。

中值滤波 cv2.medianBlur ()【非线性滤波】邻域像素排序后取中间值;专门消除椒盐噪声

http://www.jsqmd.com/news/1324693/

相关文章:

  • Spring Cloud Gateway与WebFlux的高性能架构解析
  • 2026 年现阶段乌什比较好的市政护栏供货厂家怎么联系,你天天路过的这玩意儿,藏着不少你不知道的门道?-玖龙盛邦护栏网 - 行业严选官
  • QQ截图独立版:终极免费屏幕工具集,截图+OCR+录屏一体化解决方案
  • Android后台耗电优化实战:从唤醒锁到JobScheduler的完整解决方案
  • C# WinForm TCP Socket
  • 2026继续教育必备:AI降率工具测评与应用指南
  • 人工智能通识题库及答案2025版 PDF
  • 数据仓库核心特性与架构实战:从ETL到OLAP的企业数据中枢构建
  • U盘数据恢复与修复全攻略:从CHKDSK到量产工具
  • Day 1:开篇 — 端侧AI算法工程师的100天成长之路
  • 【2024年AI设计工具终极对决】:Figma AI、Galileo、Uizard、Visla、Bridg 5大工具实测数据对比(响应速度/生成准确率/中文支持/商用合规性)
  • AI智能拦截告警风暴:EFK+K8s+OpenAI实战
  • 用 DeepSeek 生成 Qt 串口调试助手?实测 AI 辅助开发的 5 个高效工作流技巧
  • 分治算法与线段树实战:核心算法解析与应用
  • 安徽升降机批发厂家推荐:2026年热门供应商实力解析! - 优质品牌商家
  • RFC 9851 发布:TLS 1.2 功能冻结,后量子密码学聚焦 TLS 1.3
  • BPM与流程挖掘:企业数字化转型的黄金组合
  • 收藏!用大白话秒懂RAG,给AI装上实时查资料外挂,小白也能轻松学会!
  • OpenHarmony与React Native融合:Chip组件开发实践
  • LaTeX图表排版间隔问题:从原理到实战的全面解决方案
  • MyCat 实现 MySQL 主从读写分离
  • 【2024最新AI学习工具图谱】:基于127位一线算法工程师调研+2000+小时实操验证
  • PCB全检质量控制:猎板工程师的出货标准
  • UE5集成3D高斯渲染:从原理到实战的完整指南
  • 配电网抗台风应急电源优化配置与鲁棒调度策略
  • 电网抗台风应急电源优化配置与Matlab实现
  • 财务管理专业就业方向有哪些?小镇做题家学长说点求职大实话
  • 2026年8月行业内做得好的叉车供应商推荐,越野叉车/比亚迪叉车租赁/柳工叉车租赁/柳工叉车,叉车公司哪家强 - 品牌推荐师
  • Bilibili视频下载器终极指南:三步实现大会员4K高清离线观看
  • DVWA靶场实战:Burp Suite暴力破解与XSS绕过技术详解