图像处理
文章平均质量分 94
落痕的寒假
这个作者很懒,什么都没留下…
展开
-
[图像处理] 基于CleanVision库清洗图像数据集
CleanVision支持多种格式示例图片问题类型描述关键字完全重复完全相同的图像近似重复视觉上几乎相同的图像模糊图像细节模糊(焦点不实)blurry信息量低缺乏内容的图像(像素值的熵很小)过暗不规则的暗图像(曝光不足)dark过亮不规则的亮图像(曝光过度)light灰度缺乏颜色的图像grayscale异常宽高比宽高比异常的图像异常大小相比数据集中其他图像,尺寸异常的图像odd_size。原创 2024-10-24 10:36:25 · 1194 阅读 · 0 评论 -
[深度学习] 计算机视觉低代码工具Supervision库使用指北
Supervision库是一款出色的Python计算机视觉低代码工具,其设计初衷在于为用户提供一个便捷且高效的接口,用以处理数据集以及直观地展示检测结果。。Supervision库需要在Python3.8及以上版本的环境下运行。原创 2024-03-18 09:31:13 · 4915 阅读 · 2 评论 -
[深度学习] 基于切片辅助超推理库SAHI优化小目标识别
AutoDetectionModel类SAHI基于AutoDetectionModel类的from_pretrained函数加载深度学习模型。目前支持YOLOv5 models, MMDetection models, Detectron2 models和HuggingFace object detection models等深度学习模型库,如果想支持新的模型库,可以参考目录下的模型文件,新建模型检测类。模型预测。原创 2023-01-03 20:33:49 · 9959 阅读 · 48 评论 -
[OpenCV实战]52 在OpenCV中使用颜色直方图
颜色直方图是一种常见的图像特征,顾名思义颜色直方图就是用来反映图像颜色组成分布的直方图。颜色直方图的横轴表示像素值或像素值范围,纵轴表示该像素值范围内像素点的个数或出现频率。颜色直方图属于计算机视觉中的基础概念,其常常被应用于图像相似度计算,,图像颜色平衡等。颜色直方图可以基于不同的颜色空间和坐标系来实现,本文主要基于RGB颜色空间和直角坐标系计算颜色直方图。原创 2022-12-01 20:46:47 · 4708 阅读 · 0 评论 -
[深度学习] 搭建行人重识别系统心得
普通的行人reid,分为特征提取和向量检索两大部分。其他一些商用技术是普通项目接触不到,大概用这两部分,再搜集数据,换换检测模型,提高reid模型就可以了。原创 2022-11-24 23:02:45 · 1780 阅读 · 0 评论 -
[python] 基于blind-watermark库添加图片盲水印
是一个能够给图片添加/解析基于频域的数字盲水印的Python库。图像水印image watermark是指在图片里添加文本或图形,以标记图片的来源。但是图像水印会破坏原图。因此另外一种水印形式,即图像盲水印blind image watermark在实践中更多地用于标记图像来源。图像盲水印是一种肉眼不可见的水印,以不可见的形式添加到原始图像中,不会对原始图像的质量产生很大影响。图像盲水印的具体原理见。原创 2022-09-19 11:50:34 · 3667 阅读 · 0 评论 -
[图像处理] 基于图像哈希构建图像相似度对比算法
在基于OpenCV实现图像哈希算法一文中描述了如何通过OpenCV实现图像哈希算法。进一步我们可以基于图像哈希构建图像相似度对比算法(用图像哈希构建相似度对比算法精度不高,粗略筛选还是可以用的)。1 介绍基于图像哈希构建图像相似度对比算法本质就是根据两张图像的hash值距离来判断图像是否相似。具体步骤如下:计算需要检测图像的hash值,存入本地。从本地读取各个图像的hash值,计算图像间的hash值距离。图像间的hash值距离小于某个阈值,就是相似图像。本文通过Python实现图像相似度对比原创 2021-08-05 07:58:35 · 1461 阅读 · 2 评论 -
[深度学习] CCPD车牌数据集介绍
CCPD是一个大型的、多样化的、经过仔细标注的中国城市车牌开源数据集。CCPD数据集主要分为CCPD2019数据集和CCPD2020(CCPD-Green)数据集。CCPD2019数据集车牌类型仅有普通车牌(蓝色车牌),CCPD2020数据集车牌类型仅有新能源车牌(绿色车牌)。在CCPD数据集中,每张图片仅包含一张车牌,车牌的车牌省份主要为皖。CCPD中的每幅图像都包含大量的标注信息,但是CCPD数据集没有专门的标注文件,每张图像的文件名就是该图像对应的数据标注。标注最困难的部分是注释四个顶点的位置。为了原创 2021-06-09 19:03:20 · 55246 阅读 · 71 评论 -
[常用工具] dlib编译调用指南
dlib是一个C++工具包(DLIB中也有Python接口,但是主要编程语言为C++),包含绝大多数常用的机器学习算法,许多图像处理算法和深度学习算法,被工业界和学术界广泛应用于机器人、嵌入式设备、移动电话和大型高性能计算环境等领域。dlib的开源许可允许您在任何应用程序中免费使用它。在工程实践中,dlib通常和OpenCV结合使用,OpenCV提供图像处理算法,dlib提供机器学习算法。对于从事计算机视觉行业的人,非常推荐学习使用dlib。本文主要讲述dlib在Windows(win10)和linux(u原创 2021-04-23 20:07:59 · 4570 阅读 · 0 评论 -
[OpenCV实战]51 基于OpenCV实现图像极坐标变换与逆变换
在图像处理领域中,经常通过极坐标与笛卡尔直角坐标的互转来实现图像中圆形转为方形,或者通过极坐标反变换实现方形转圆形。例如钟表的表盘,人眼虹膜,医学血管断层都需要用到极坐标变换来实现圆转方。文章目录1 基础数学知识1.1 极坐标1.2 二维直角坐标系转换2 圆形区域转换为矩形区域2.1 预设值2.2 标准圆形转换2.2.1 Step1 获得各点的极坐标2.2.2 Step2 获得直角坐标2.2.3 Step3 获得OpenCV图像坐标2.2.4 示例代码2.3 任意角度圆形转换2.4 任意角度圆形顺时针转换原创 2021-03-15 17:34:55 · 7584 阅读 · 11 评论 -
[OpenCV实战]50 用OpenCV制作低成本立体相机
本文主要讲述利用OpenCV制作低成本立体相机以及如何使用OpenCV创建3D视频,准确来说是模仿双目立体相机,我们通常说立体相机一般是指双目立体相机,就是带两个摄像头的那种(目就是指眼睛,双目就是两只眼睛),这种双目摄像机模仿人的视觉,所以应用很广泛(主要是工业机器人视觉)。双目摄像机也广泛应用于无人驾驶,比如特斯拉、图森未来,小鹏汽车在自家的无人驾驶汽车上都安载了立体相机,双目和多目的都有。另外双目视觉加上深度学习还蛮好水论文的。本文主要说的是低成本,实际上没人这样干,有专门的双目立体相机,已经非常成熟原创 2021-02-16 17:22:46 · 1903 阅读 · 9 评论 -
[OpenCV实战]49 对极几何与立体视觉初探
本文主要介绍对极几何(Epipolar Geometry)与立体视觉(Stereo Vision)的相关知识。对极几何简单点来说,其目的就是描述是两幅视图之间的内部对应关系,用来对立体视觉进行建模,实际上就是一种约束条件,这样可以确定立体匹配时的最优解。对极几何是计算机视觉领域中一个基础概念,具体可以学习文章-对极几何(Epipolar)。对极几何/极几何在各个坐标系(世界坐标系,观察坐标系,像素坐标系)相互转换中是十分重要的一个概念。立体视觉是一种很常用的计算机视觉技术,其目的是从两幅或两幅以上的图像中推原创 2021-02-12 16:27:12 · 1693 阅读 · 1 评论 -
[深度学习] imgaug库使用笔记
imgaug是一款非常有用的python图像增强库,非常值得推荐应用于深度学习图像增强。其包含许多增强技术,支持图像分类,目标检测,语义分割,热图、关键点检测等一系列任务的图像增强。本文主要介绍imgaug基本使用,以及应用关键点和边界框增强。官方代码仓库:imgaug官方入门文档:imgaug doc增强效果预览:overview of augmentersApi:imgaug dpi# 安装imgaug模块# pip install imgaug1 加载和增强图片1.1 读图i原创 2020-10-24 10:07:39 · 7463 阅读 · 3 评论 -
[OpenCV实战]48 基于OpenCV实现图像质量评价
本文主要介绍基于OpenCV contrib中的quality模块实现图像质量评价。图像质量评估Image Quality Analysis简称IQA,主要通过数学度量方法来评价图像质量的好坏。本文需要OpenCV contrib库,OpenCV contrib库的编译安装见:OpenCV_contrib库在windows下编译使用指南本文所有代码见:OpenCV-Practical-Exercise文章目录1 OpenCV中图像质量评价算法介绍1.1 相关背景1.2 OpenCV中图像质原创 2020-10-09 19:07:13 · 13031 阅读 · 17 评论 -
[OpenCV实战]47 基于OpenCV实现视觉显著性检测
人类具有一种视觉注意机制,即当面对一个场景时,会选择性地忽略不感兴趣的区域,聚焦于感兴趣的区域。这些感兴趣的区域称为显著性区域。视觉显著性检测(Visual Saliency Detection,VSD)则是一种模拟人类视觉并从图像中提取显著性区域的智能算法。如下面左边的图所示,人眼在观看该图片时会首先注意其中的小狗,自动忽略背景区域,小狗所在区域就是显著性区域。通过计算机视觉算法对左边的图像进行视觉显著性检测能够得到下图右边的结果,其中黑色区域为不显著区域,白色为显著区域,显著性检测在机器人领域、目标检测原创 2020-09-15 19:54:28 · 7565 阅读 · 8 评论 -
[OpenCV实战]46 在OpenCV下应用图像强度变换实现图像对比度均衡
本文主要介绍基于图像强度变换算法来实现图像对比度均衡。通过图像对比度均衡能够抑制图像中的无效信息,使图像转换为更符合计算机或人处理分析的形式,以提高图像的视觉价值和使用价值。本文主要介绍通过OpenCV contrib中的intensity_transform模块实现图像对比度均衡。如果想了解具体相关方法原理见冈萨雷斯主编的图像处理经典书籍 数字图像处理Digital Image Processing 第四版第三章。本文需要OpenCV contrib库,OpenCV contrib库的编译安装见:O原创 2020-09-10 19:42:47 · 2985 阅读 · 0 评论 -
[OpenCV实战]45 基于OpenCV实现图像哈希算法
目前有许多算法来衡量两幅图像的相似性,本文主要介绍在工程领域最常用的图像相似性算法评价算法:图像哈希算法(img hash)。图像哈希算法通过获取图像的哈希值并比较两幅图像的哈希值的汉明距离来衡量两幅图像是否相似。两幅图像越相似,其哈希值的汉明距离越小,通过这种方式就能够比较两幅图像是否相似。在实际应用中,图像哈希算法可以用于图片检索,重复图片剔除,以图搜图以及图片相似度比较。为什么图像哈希算法能够评估两幅图像的相似性,这就需要从哈希值说起,哈希值计算算法的本质就是对原始数据进行有损压缩,有损压缩后的固定原创 2020-08-27 19:32:15 · 6039 阅读 · 0 评论 -
[OpenCV实战]44 使用OpenCV进行图像超分放大
图像超分辨率(Image Super Resolution)是指从低分辨率图像或图像序列得到高分辨率图像。图像超分辨率是计算机视觉领域中一个非常重要的研究问题,广泛应用于医学图像分析、生物识别、视频监控和安全等领域。随着深度学习技术的发展,基于深度学习的图像超分方法在多个测试任务上,相比传统图像超分方法,取得了更优的性能和效果。文章目录1 OpenCV dnn_superres模块介绍2 OpenCV dnn_superres模块使用2.1 图像超分放大单输出2.1.1 接口介绍2.1.2 示例代码2.1原创 2020-08-24 20:19:35 · 10773 阅读 · 19 评论 -
[OpenCV实战]43 使用OpenCV进行背景分割
运动背景分割法Background Segment主要是指通过不同方法拟合模型建立背景图像,将当前帧与背景图像进行相减比较获得运动区域。下图所示为检测图像:通过前面的检测帧建立背景模型,获得背景图像。然后检测图像与背景图像相减即为运动图像,黑色区域为背景,白色区域为运动目标,如下图所示:在OpenCV标注库中有两种背景分割器:KNN,MOG2。但是实际上OpenCV_contrib库的bgsegm模块中还有其他几种背景分割器。本文主要介绍OpenCV_contrib中的运动背景分割模型及其用法,并对原创 2020-08-14 13:16:18 · 5704 阅读 · 9 评论 -
[OpenCV实战]42 数码单反相机的技术细节
数码单反相机的技术细节在这篇文章中,我们将说明数码单反相机DSLR(Digital Single Lens Reflex Camera)的各个技术方面。本文将说明焦距(focal length),f-stop,景深(depth of field),光圈(aperture),快门速度(shutter speed),ISO设置(ISO setting),图像稳定(image stabilization)和自动包围曝光( auto exposure bracketing)。数码单反相机(或单反相机——数码单反原创 2020-05-12 17:15:54 · 1323 阅读 · 4 评论 -
[OpenCV实战]40 计算机视觉工具对比
文章目录1 简介2 适用于计算机视觉的MATLAB2.1 为什么要使用MATLAB进行计算机视觉:优点2.2 为什么不应该将MATLAB用于计算机视觉:缺点3 适用于计算机视觉的OpenCV(C++)3.1 为什么要使用OpenCV(C++)进行计算机视觉:优点3.2 为什么不应该将OpenCV(C++)用于计算机视觉:缺点4 适用于计算机视觉的OpenCV(Python)4.1 为什么要使用Op...原创 2020-05-07 19:34:31 · 1352 阅读 · 0 评论 -
[OpenCV实战]39 在OpenCV中使用ArUco标记的增强现实
文章目录1 什么是ArUco标记?2 在OpenCV中生成ArUco标记3 检测Aruco标记4 增强现实应用5 总结和代码5.1 生成aruco标记5.2 使用aruco增强现实6 参考在本文中,我们将解释什么是ArUco标记以及如何使用OpenCV将其用于简单的增强现实任务。ArUco标记器已在增强现实,相机姿态估计和相机校准中使用了一段时间。让我们进一步了解它们。1 什么是ArUco标记...原创 2020-03-31 18:42:26 · 5138 阅读 · 0 评论 -
[OpenCV实战]38 基于OpenCV的相机标定
文章目录1 什么是相机标定?2 图像形成几何学2.1 设定2.1.1 世界坐标系2.1.2 相机坐标系2.1.3 图像坐标系2.2 图像形成方法总结3 基于OpenCV的相机标定原理3.1 相机标定相关参数3.2 相机标定的目标3.3 不同类型的相机标定方法4 相机标定示例步骤4.1 使用棋盘格模式定义真实世界坐标4.2 从不同的角度捕获棋盘的多个图像4.3 查找棋盘的2D坐标4.3.1 查找棋盘...原创 2020-03-06 15:29:19 · 29280 阅读 · 45 评论 -
[OpenCV实战]27 在OpenCV下使用forEach进行并行像素访问
目录1 Mat像素访问1.1 使用at方法直接进行像素访问1.2 使用指针进行像素访问1.3 使用forEach方法进行像素访问1.4 将forEach与C ++ 11 Lambda一起使用2 性能比较与代码2.1 性能比较2.2 代码3 参考C++11扩展了for语句的语法。用这个新写法forEach,forEach可以遍历C类型的数组、初始化列表以及任何...原创 2019-05-07 14:42:11 · 4595 阅读 · 3 评论 -
[OpenCV实战]30 使用OpenCV实现图像孔洞填充
在本教程中,我们将学习如何填充二值图像中的孔。考虑下图左侧的图像。假设我们想要找到一个二值掩模,它将硬币与背景分开,如下图右侧图像所示。在本教程中,包含硬币的圆形区域也将被称为前景。请注意,硬币的边界是黑色的,与白色背景不同。因此,我们使用简单的图像阈值来将边界与背景分开。换句话说,我们说强度高于某个值(阈值)的像素是背景,其余像素是前景。上图中间图像显示通过阈值分割获得图像(黑色代表背景...原创 2019-05-10 14:48:56 · 9223 阅读 · 8 评论 -
[OpenCV实战]32 使用OpenCV进行非真实感渲染
目录1 保边滤波的频域变换1.1 保边滤波器Edge Preserving Filter1.1.1 函数调用1.1.2 edgePreservingFilter结果1.2 细节增强1.3 素描滤波器1.4 风格化滤波器2 代码3 参考有人认为使用高斯内核简单地模糊图像,检测边缘,并将两个图像组合以获得上面所示卡通化图像。虽然在大多数区域中所有图像看起来都...原创 2019-05-24 15:32:29 · 5432 阅读 · 0 评论 -
[OpenCV实战]31 使用OpenCV将一个三角形仿射变换到另一个三角形
目录1 什么是仿射变换?2 使用OpenCV进行三角形仿射变换2.1 定义输入和输出2.2 计算边界框2.3 裁剪图像和更改坐标2.4 计算仿射变换矩形2.5 应用仿射变换到三角形2.6 屏蔽三角形外的像素3 代码4 参考在本文中,我们会看到如何将一个三角形仿射变换到另一个三角形。在图形学的研究中,研究者常常进行三角形之间的变换操作,因为任意的3D表面都...原创 2019-05-23 10:58:10 · 6700 阅读 · 6 评论 -
[OpenCV实战]33 使用OpenCV进行Hough变换
目录1 什么是霍夫变换1.1 应用霍夫变换以检测图像中的线条1.2 累加器1.3 线条检测1.4 圆环的检测2 代码3 参考1 什么是霍夫变换霍夫变换是用于检测图像中的简单形状(诸如圆形,线条等)的特征提取方法。“简单”形状是可以仅由几个参数表示的形状。例如,一条线可以用两个参数(斜率,截距)表示,一个圆有三个参数:中心坐标和半径(x,y,r)。霍夫变换在图像中...原创 2019-05-27 16:53:38 · 3998 阅读 · 0 评论 -
[OpenCV实战]34 使用OpenCV进行图像修复
目录1 什么是图像修复1.1 INPAINT_NS : Navier-Stokes based Inpainting1.2 INPAINT_TELEA : Fast Marching Method based1.3 方法比较与函数实现2 结果与代码2.1 结果2.2 代码3 参考本文将描述一类称为图像修复的区域填充算法。想象一下找一张旧的家庭照片。你扫描它,它...原创 2019-05-28 15:53:03 · 14543 阅读 · 8 评论 -
[OpenCV实战]6 基于特征点匹配的视频稳像
目录1 介绍1.1 视频稳定的方法1.2 使用点特征匹配的视频稳定2 算法2.1 帧间运动信息获取2.1.1 合适的特征点获取2.1.2 Lucas-Kanade光流法2.1.3 运动估计2.2计算帧之间的总体运动2.2.1 计算运动轨迹2.2.2 计算平滑轨迹2.2.3 平滑变化计算2.3 将平滑后的变化矩阵应用于帧3 结果和代码...原创 2019-03-08 17:29:11 · 9382 阅读 · 59 评论 -
[OpenCV实战]29 使用OpenCV实现红眼自动去除
目录1 红眼消除1.1 眼部检测1.2 红眼遮掩1.3 清除瞳孔掩模空洞1.4 红眼修复2 结果与完整代码2.1 结果2.2 代码3 参考在本教程中,我们将学习如何完全自动地从照片中消除红眼。如下图所示:当我们晚上拍摄的照片有红眼效果时,带着血腥眼睛的微笑的人会让人想起德古拉。使用照片编辑工具可以删除红眼,但是需要很长的时间来学习。构建一个可用于各种...原创 2019-05-09 15:30:53 · 4556 阅读 · 0 评论 -
[OpenCV实战]26 基于OpenCV实现选择性搜索算法
目录1 背景1.1 目标检测与目标识别1.2 滑动窗口算法1.3 候选区域选择算法2选择性搜索算法2.1 什么是选择性搜索?2.2 选择性搜索相似性度量2.3 结果3 代码4 参考本教程中,我们将了解目标检测中称为“选择性搜索”的重要概念。我们还将在OpenCV 中使用C ++和Python实现该算法。1 背景1.1 目标检测与目标识别目标...原创 2019-05-06 15:23:29 · 5242 阅读 · 0 评论 -
[OpenCV实战]9 使用OpenCV寻找平面图形的质心
目录1 名词解释2 在OpenCV中查找Blob质心的步骤3 图像多个blob下的质心获取4 参考在中学,我们学习了几何的中各种平面图形。找到标准平面图形的中心(几何中心)比较容易,如圆形,方形,三角形,椭圆形等。中心是几何名词,质心是物理名词。质心是针对实物体而言的,而几何中心是针对抽象几何体而言的,对于密度均匀标准形状的物体,质心和几何中心重合。但是当要找到任意形状的质...原创 2019-03-16 15:46:08 · 15748 阅读 · 6 评论 -
[Caffe]Caffe ssd常见问题集合
1Check failed: a <= b <0 vs -1.19209e-007>网上办法是注释掉 CHECK_LE(a, b),但是这样会出大问题。解决办法见2。如果注释掉 CHECK_LE(a, b) 会出现Data layer prefetch queue empty不注释CHECK_LE(a, b) 会出现错误 a可能大于b2training err...原创 2019-03-12 10:54:11 · 3317 阅读 · 0 评论 -
[OpenCV实战]8 深度学习目标检测网络YOLOv3的训练
目录1数据集1.1下载openImages雪人数据[约1.5小时]1.2训练集测试集拆分2 Darknet2.1下载并构建Darknet2.2修改代码以定期保存模型文件2.3 数据注释3模型训练3.1下载预训练模型3.2数据文件3.3配置训练参数3.3.1 batch和subdivisions3.3.2 Width, Heigh...原创 2019-03-15 19:27:26 · 6665 阅读 · 0 评论 -
[OpenCV实战]11 基于OpenCV的二维码扫描器
目录1 二维码(QRCode)扫描2 结果3 参考在这篇文章中,我们将看到如何使用OpenCV扫描二维码。您将需要OpenCV3.4.4或4.0.0及更高版本来运行代码。1 二维码(QRCode)扫描在OpenCV中扫描二维码很简单。我们首先读取图像。然后,我们实例化QRCodeDetector对象并使用detectAndDecode方法来查找QR码的数据和位置。最后,我们...原创 2019-03-19 16:00:17 · 9066 阅读 · 5 评论 -
[OpenCV实战]1 基于深度学习识别人脸性别和年龄
目录1基于CNN的性别分类建模原理1.1 人脸识别1.2 性别预测1.3 年龄预测1.4 结果2 代码参考本教程中,我们将讨论应用于面部的深层学习的有趣应用。我们将估计年龄,并从单个图像中找出该人的性别。模型由GilLevi和TalHassner训练(https://talhassner.github.io/home/publication/2015_CVPR)。本...原创 2019-03-04 20:03:27 · 15182 阅读 · 22 评论 -
[OpenCV实战]5 基于深度学习的文本检测
目录1 网络加载2 读取图像3 前向传播4 处理输出3结果和代码3.1结果3.2 代码参考在这篇文章中,我们将逐字逐句地尝试找到图片中的单词!基于最近的一篇论文进行文字检测。EAST: An Efficient and Accurate Scene Text Detector.https://arxiv.org/abs/1704.03155v2htt...原创 2019-03-06 19:00:45 · 8314 阅读 · 7 评论 -
[OpenCV实战]4 OpenCV中的颜色空间
目录1 不同的色彩空间1.1RGB颜色空间1.2 Lab色彩空间1.3 YCrCb颜色空间1.4 HSV颜色空间2 如何使用这些颜色空间进行分割2.1 获取特定颜色的颜色值2.2 应用分段阈值参考在本教程中,我们将了解计算机视觉中常用的色彩空间,并将其用于基于颜色分割。我们还将用C ++和Python共享演示代码。在进行色彩分割时很多项目没有考虑到不同...原创 2019-03-06 15:13:46 · 4880 阅读 · 2 评论 -
[OpenCV实战]3 透明斗篷
目录1寻找和存储背景帧2红色区域检测3提取红色区域4背景帧红布区域替换当前帧红布区域。5工程代码参考弄出哈利波特电影里一样效果的透明斗篷。也就是一个视频里,将红布弄成透明。类似下面的效果。基本思想如下:1寻找和存储背景帧。2用颜色检测算法检测红色布。3提取红色区域。4背景帧红布区域替换当前帧红布区域。1寻找和存储背景帧算法关键思想是用背景...原创 2019-03-06 09:23:02 · 3885 阅读 · 0 评论