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

opencv-图像处理

  • 彩色图像
    • HSV
      • 色调、饱和度、亮度
    • gray是灰度图像
  • 颜色追踪(inRange的使用)
    hsv=cv.cvtColor(frame,cv.COLOR_BGR2HSV)
    lower_hsv=np.array([11,43,46])
    upper_hsv=np.array([25,255,255])
    mask=cv.inRange(hsv,lowerb=lower_hsv,upperb=upper_hsv)
    • inRange函数是OpenCV库中的一个功能,用于检查图像像素值是否在指定的范围内,并生成一个二值图像。
    • 在OpenCV的inRange函数中,输入参数包括源图像(src)、下界阈值(lowerb)、上界阈值(upperb)以及可选的输出图像(dst)。该函数主要用于将图像中的像素值限制在指定的范围内,通常应用于灰度图像或彩色图像。如果像素值在下界和上界之间,则在输出图像中对应像素被设置为白色(255),否则为黑色(0)。这种处理方式适用于图像分割、目标提取等任务,尤其在CAMShift算法中非常关键。在使用inRange函数时,首先需要确定合适的颜色空间。对于基于颜色的操作,HSV色彩空间通常比RGB色彩空间更加直观和有效。因此,图像通常会从BGR色彩空间转换为HSV色彩空间。例如,若要提取图像中的蓝色对象,可以定义蓝色的下界和上界阈值,然后将这些阈值应用到HSV图像上,从而得到一个二值图像,其中满足条件的像素为白色,不满足条件的像素为黑色。在实际应用中,可以使用以下步骤来实现这一过程。首先,加载图像并将其从BGR色彩空间转换为HSV色彩空间。然后,根据需要提取的颜色范围定义下界和上界阈值。例如,要提取蓝色对象,可以设置下界为(100, 50, 50)、上界为(130, 255, 255)。接下来,调用cv2.inRange()函数并将结果保存在一个掩模(mask)中。最后,可以将此掩模应用于原始图像,仅保留特定颜色范围内的像素。
  • 图像平滑的方式
    • 均值滤波(Mean Filtering):
      • 通过用像素周围的平均值替换每个像素值来平滑图像。
      • 简单但可能会模糊图像的边缘。
    • 高斯滤波(Gaussian Filtering):
      • 使用高斯函数作为权重的加权平均来平滑图像。
      • 比均值滤波更有效,能够保留更多的图像细节。
    • 中值滤波(Median Filtering):
      • 将每个像素值替换为其邻域像素值的中位数。
      • 对于去除椒盐噪声特别有效,同时能保持边缘特征。
    • 双边滤波(Bilateral Filtering):
      • 在保持边缘的同时平滑图像,考虑像素值的强度和距离。
      • 适用于需要保留边缘信息的场景。
    • 最大值/最小值滤波:
      • 使用邻域内的最大值或最小值替换每个像素值。
      • 最大值滤波可以增强亮区域,最小值滤波可以增强暗区域。
    • 双边高斯滤波(Bilateral Gaussian Filter):
      • 结合了双边滤波和高斯滤波的优点,使用高斯函数进行距离和强度的加权。
    • 局部对比度增强(Local Contrast Enhancement):
      • 通过增强图像的局部细节来平滑图像,通常用于突出图像的纹理。
    • 频域滤波(Frequency Domain Filtering):
      • 在频域进行滤波,如使用低通滤波器去除高频噪声。
    • 非局部均值滤波(Non-Local Means):
      • 考虑图像中所有像素之间的相似性,对噪声进行去除。
    • α-trimmed滤波:
      • 先对邻域内的像素值进行排序,然后去掉一定比例的最小和最大的像素值,取剩余像素的平均值。
http://www.dtcms.com/a/293186.html

相关文章:

  • 视频编解码技术的未来趋势:从H.266到AI驱动的绿色革命
  • 【AI 学习笔记】Tool Calling:让 AI 不再“纸上谈兵“
  • 深入解析 Fetch API 的 credentials 属性:Cookie 携带机制
  • 洛谷 P3478 [POI 2008] STA-Station
  • Ollama Docker 容器向容器内传输AI模型并挂载模型
  • 基于快速S变换的配电网故障选线
  • Android开发:Java与Kotlin深度对比
  • IDC权威认可:瑞数信息双项入选《中国大模型安全保护市场概览》
  • CSS+JavaScript 禁用浏览器复制功能的几种方法
  • AWE2026启动:加码AI科技,双展区联动开启产业新格局
  • LeetCode 刷题【11. 盛最多水的容器】
  • Zap日志库指南
  • PCIe Base Specification解析(三)
  • java多线程编程自用笔记
  • 论文笔记:EMR-MERGING: Tuning-Free High-Performance Model Merging
  • 2025.7.22 测试 总结
  • Qt/C++源码/监控设备模拟器/支持onvif和gb28181/多路批量模拟/虚拟监控摄像头
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ImageCarousel(图片轮播组件)
  • linux应用:spi_ioc_transfer结构cs_change说明
  • 【实时Linux实战系列】实时文件系统的特性与优化
  • 深入解析Hadoop中的Region分裂与合并机制
  • Adam、AdamW介绍,以及AdamW优势
  • 数控机床上滚珠螺杆故障怎么解决?
  • HITL节点介绍(Human-in-the-loop nodes)(指在自动化流程(如AI工作流或系统)中,允许人类在关键步骤直接参与、干预或修正的节点)
  • 【Verilog】竞争、冒险
  • 11.Java三大特性
  • 知识付费平台源码开发详解:内容审核、版权保护与防盗机制全方案
  • IMU(LSM6DSMTR+LIS2MDLTR)
  • STL学习(一、string容器)
  • C# 基于halcon的视觉工作流-章21-点查找