![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
文章平均质量分 54
零钱币
这个作者很懒,什么都没留下…
展开
-
CV:利用cv2+dlib库(人脸征检测器)实现人脸检测与人脸标记之《极限男人帮》和《NBA全明星球员》
设计思路输出结果代码实现import cv2import dlibimport numpy as npimport sysPREDICTOR_PATH="E:\\pyOpencv\\shape_predictor_68_face_landmarks.dat"detector=dlib.get_frontal_face_detector()predictor=dlib.shape_predictor(PREDICTOR_PATH)class NoFaces(E...原创 2020-11-16 20:02:46 · 381 阅读 · 0 评论 -
肤色检测
方法一:基于YCrCb颜色空间Cr,Cb范围筛选法思路如下:1)将RGB模型转换为YCbCr模型2)阈值分割:据资料显示,正常黄种人的Cr分量大约在133至173之间,Cb分量大约在77至127之间。大家可以根据自己项目需求放大或缩小下面放上源代码:#include#include#includeusing namespace cv;原创 2018-01-24 21:31:40 · 6974 阅读 · 1 评论 -
形态学操作(腐蚀、膨胀、开操作、闭操作、形态学梯度、顶帽、黑帽)
形态学其他操作(用的不多,如果忘了也可以通过膨胀腐蚀得到相同效果)1.开运算2.闭运算 3.形态学梯度4.顶帽5.黑帽这篇博客写的比较好:http://blog.csdn.net/zxli3011/article/details/50522939原创 2017-12-30 14:34:56 · 1984 阅读 · 0 评论 -
小案例---颜色圆的检测
颜色圆检测的步骤:1.将原始图片的BGR颜色空间转换到HSV色彩空间有关HSV的文章见下面:http://blog.csdn.net/viewcode/article/details/82037282.根据红色在HSV中的范围,对图像进行阈值分割,红色的圆被保留(白色),其他的变成黑色3.对步骤二检测到的高低阈值的颜色圆进行合并,找出属于红色的圆4.利用霍夫圆检测算法找原创 2017-12-30 11:14:35 · 1848 阅读 · 3 评论 -
Opencv图像分割之K-means聚类算法
kmeans是非常经典的聚类算法,至今也还保留着较强的生命力,图像处理中经常用到kmeans算法或者其改进算法进行图像分割操作,在数据挖掘中kmeans经常用来做数据预处理。opencv中提供了完整的kmeans算法,其函数原型为:double kmeans( InputArray data, int K, InputOutputArray bestLabels, TermCriter原创 2018-01-22 17:03:12 · 12335 阅读 · 2 评论 -
OpenCV中HSV颜色模型及颜色分量范围
HSV颜色模型HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。、这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。 色调H:用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为24转载 2018-01-04 22:06:27 · 3066 阅读 · 0 评论 -
彩色图像--色彩空间 HSI(HSL)、HSV(HSB)
这篇博客转载自:http://blog.csdn.net/tonyshengtan 开篇废话色彩空间介绍最后两种与人类感知相对较接近的两种空间,彩色图像处理后面的内容大部分用在图像的基础处理,而如果想学习图像分析,应该开始学习一些模式识别和机器学习的算法,打算最近开始学习一些,并且开一个新的博客主题,欢迎讨论。。。 今天介绍下两种相对较接近色彩定义的,人的视觉只能分辨颜转载 2018-01-04 20:11:56 · 4328 阅读 · 0 评论 -
Harris角点检测原理及C++实现
1. 首先,我们不禁要问什么是harris角点? 对于角点,到目前为止还没有明确的数学定义。但是你可以认为角点就是极值点,即在某方面属性特别突出的点。一般的角点检测都是对有具体定义的、或者是能够具体检测出来的兴趣点的检测。这意味着兴趣点可以是角点,是在某些属性上强度最大或者最小的孤立点、线段的终点,或者是曲线上局部曲率最大的点。 通俗的来说,在一副图像中原创 2017-12-29 12:30:29 · 25852 阅读 · 19 评论 -
Opencv图割Grabcut
Grabcut的算法实现的流程:**********参数说明****************GrabCut函数使用 在OpenCV的源码目录的samples的文件夹下,有grabCut的使用例程,请参考:opencv\samples\cpp\grabcut.cpp。而grabCut函数的API说明如下:void cv::gr原创 2018-01-21 21:36:18 · 1235 阅读 · 0 评论 -
Moravec角点检测原理及C++实现
(1)Moravec角点检测算法原理Moravec角点检测算法是最早的角点检测算法之一。该算法将角点定义为具有低“自相关性”的点。算法会检测图像的每一个像素,将像素周边的一个邻域作为一个patch,并检测这个patch和周围其他patch的相关性。这种相关性通过两个patch间的平方差之和(SSD)来衡量,SSD值越小则相似性越高。如果像素位于平滑图像区域内,周围的patch都会非常相似。原创 2017-12-28 18:03:29 · 1663 阅读 · 1 评论 -
分水岭算法的原理及Opencv实现
分水岭算法主要用于图像分段,通常是把一副彩色图像灰度化,然后再求梯度图,最后在梯度图的基础上进行分水岭算法,求得分段图像的边缘线。 下面左边的灰度图,可以描述为右边的地形图,地形的高度是由灰度图的灰度值决定,灰度为0对应地形图的地面,灰度值最大的像素对应地形图的最高点。我们可以自己编程实现灰度图的地形图显示,工程FirstOpenCV6就实现了简单的这个功能,比如上边...原创 2018-01-21 16:33:38 · 3547 阅读 · 0 评论 -
高斯混合模型GMM
写在前面: Gaussian Mixture Model (GMM)。事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estimation ),简单地说,k-means 的结果是每个数据点被 assign 到其中某一个 cluster 了,而 GMM 则给出这些原创 2018-01-24 12:01:15 · 1768 阅读 · 0 评论 -
绿幕背景视频抠图
绿幕背景视频抠图对实时性要求比较高,如果使用kmeans或者GMM的话那么就太耗时了,达不到要求,因此将RGB空间转换到HSV色彩空间进行处理 关于HSV 中颜色分量范围请看这篇博客:http://blog.csdn.net/linqianbi/article/details/78975998 绿幕背景视频抠图的流程图:下面看代码:#includeus原创 2018-01-24 17:41:01 · 10775 阅读 · 3 评论 -
Deep Learning(深度学习)
Deep Learning(深度学习)ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错。deeplearning.net主页,里面包含的信息量非常多,有...转载 2019-08-26 16:00:38 · 886 阅读 · 0 评论 -
傅里叶分析之掐死教程(完整版)
本文转载自知乎:https://zhuanlan.zhihu.com/p/19763358要让读者在不看任何数学公式的情况下理解傅里叶分析。傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实说,这么有意思的东西居然成了大学里的杀手课程,不得不归咎于编教材的人实在是太严...转载 2019-08-17 15:54:23 · 1637 阅读 · 0 评论 -
Opencv车牌识别之车牌区域定位(一)
在我的车牌区域定位的方法的流程是:1.首先使用高斯滤波去掉一些干扰的元素2.然后将彩色图转换成灰度图3.然后利用Soble边缘提取的方法提取垂直方向的边缘4.利用OTSU的二值化方法将步骤3中的图二值化5.利用水平扫描与垂直扫描的方法定位出车牌的区域下面详细讲解每一步的程序代码:1.高斯滤波的详细讲解见:http://blog.csdn.net/linqianb原创 2018-01-18 15:36:39 · 23141 阅读 · 14 评论 -
《OpenCV3编程入门-毛星云》第三部分 掌握imgproc组件
平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10截止今天我终于把《OpenCV3编程入门-毛星云》这本书看完了,看了将近两个月终于看完了!看的挺累的,有点吃力,很多讲算法原理的地方看的很模糊。但是因为我一直带着一个问题去看:如何识别摄像头视频流中的红外LED灯?每看完一个案例我就会想有没有帮助,能不能用的上,然后做一些笔记,转载 2018-01-25 20:43:36 · 692 阅读 · 0 评论 -
《OpenCV3编程入门-毛星云》第二部分 初探core组件
平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10童鞋们,我们继续翻目录,哈哈哈当然我不是翻目录,我是真的已经一字一句看过了,我自认为C语言基础还是很好的,代码方面可以看得很快。但是算法方面有点吃力。下面红色文字是我自己的总结!第二部分 初探core组件 83转载 2018-01-25 20:42:51 · 431 阅读 · 0 评论 -
《OpenCV3编程入门-毛星云》第一部分 快速上手OpenCV
平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10接下来的很长一段时间我将沿着学习,记录整个学习过程和心得,既是自己的学习笔记,也为后来人提供一份参考资料。由于我上半年研究了一段时间OpenCV,各种平台的安装使用都很熟练了,大家可以去看我前面的文章。主要是为了适配我们公司一个合作商的Android图像识别转载 2018-01-25 20:41:23 · 6912 阅读 · 1 评论 -
《OpenCV3编程入门》毛星云编著
最近几天开始收集图像识别的相关资料:程序开源库主要就是OpenCV,这是主流工具,所以我暂时也没去了解其他的算法库。算法讲解类的书籍,网友推荐了基本经典的,《数字图像处理第二版中文版(冈萨雷斯)》、《模式识别-第二版(西奥多里蒂斯 著,李晶皎译)》,这俩是国外著名的,国内应该更多,反正现在也没时间看,先不了解那么多。首先就来对OpenCV进行深入的研究学习转载 2018-01-25 20:40:49 · 16079 阅读 · 1 评论 -
OpenCV 图像处理领域活跃的博主
浅墨_毛星云 博客专栏:[OpenCV]入门教程 南京航空航天大学 硕士毕业 http://blog.csdn.net/column/details/opencv-tutorial.html星沉阁冰不语 博客专栏:OpenCV实践之路 北京化工大学 机械电子工程研究生http://blog.csdn.net/column/details/opencv-prac转载 2018-01-25 20:31:49 · 508 阅读 · 0 评论 -
最大熵阈值分割
现在主要用的熵算法有 P 氏熵算法,KSW 熵算法、JM 熵算法下面以经典的 KSW 熵算法为例介绍其原理和计算过程。KSW熵算法设分割阈值为设分割阈值为t, T为{0,1,2,...t}的灰度分布,B为{t+1,t+2,...L-1}的灰度分布,则概率分布为:原创 2017-11-24 14:17:19 · 3290 阅读 · 0 评论 -
改进边缘检测算子----Marr-Hildreth算法
边缘检测的改进:一、边缘检测方法是以使用较小的算则为基础的,Marr和Hildreth证明了:(1)灰度变化与图像尺寸无关,因此他们的检测要求使用不同尺寸的算子;(2)灰度的突然变化会在一阶导数中引起波峰或波谷,或在二阶导数中等效地引起零交叉。根据这些建议,边缘检测算子应有两个显著特点:(1)能计算图像中每一点处的一阶导数或二阶导数的数字近似的微分算子;原创 2017-12-27 16:05:16 · 6004 阅读 · 1 评论 -
灰度图像直方图的规定化的原理及代码实现
图像增强的首要目标是改善图像, 以使图像更适合于特定应用。 图像增强的方法主要取决于图像希望达到的特定效果, 一般来说, 图像增强的方法分为两大类: 基于图像灰度值统计的方法和基于图像空间频率的方法[1]。 用灰度直方图增强图像对比度是基于图像灰度值统计的一种重要方法, 它以概率论为基础的, 常用的实现算法主要是直方图均衡化和直方图规定化。直方图均衡化主要用于增强动态范围较小的图像的反差, 基原创 2017-11-23 12:44:40 · 17567 阅读 · 2 评论 -
灰度图的直方图均衡化的原理及实现
直方图均衡化的作用是图像增强。有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布。第一个问题。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保证原来的大小关系不变,较亮的区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,原创 2017-11-22 14:40:45 · 19421 阅读 · 1 评论 -
图像处理之基于OTSU阈值二值化
这篇文章主要参考了:http://blog.csdn.net/liyuanbhu/article/details/49387483 还有http://blog.csdn.net/jia20003/article/details/43915983机器视觉领域许多算法都要求先对图像进行二值化。这种二值化操作阈值的选取非常重要。阈值选取的不合适,可能得到的结果就毫无用处。今天就来讲讲一种自动计算原创 2017-11-21 15:19:53 · 6847 阅读 · 0 评论 -
图像插值算法之双三次插值
数学原理假设源图像A大小为m*n,缩放后的目标图像B的大小为M*N。那么根据比例我们可以得到B(X,Y)在A上的的 对应坐标为A(x,y)=A(X*(m/M),Y*(n/N))。在双线性插值法中,我们选取A(x,y)的最近四个点。而在双立方 插值法中,我们选取的是最近的16个像素点作为计算目标图像B(X,Y)处像素值的参数。如图所示:如图所示P点就是目标图像原创 2017-11-21 16:29:55 · 19356 阅读 · 4 评论 -
图像插值算法之双线性插值
假设原图图片的宽度为yw,高度为xh变换图的宽度为jw,高度为ih于是对于变换图中任意一个像素点(j’, i’)我们可以用以下的方法映射到原图中去:y' = yw/jw * j'x' = xh/ih * i'123通常情况下,y’和x’不为整数。例如,原图尺寸:yw = 1000xh = 800123变换图尺寸:jw = 700ih =原创 2017-11-21 16:23:24 · 4674 阅读 · 1 评论 -
图像的插值算法之最近邻插值
这是一种简单的插值算法:不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素设i+u, j+v(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u, j+v)如下图所示:如果(i+u, j+v)落在A区,即u最邻近元法计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可原创 2017-11-21 16:16:13 · 24948 阅读 · 6 评论 -
图像的旋转操作
图像的旋转的额基本原理:图像的每个像素需要经过如下3步完成旋转。①由输入图像的坐标系转换为数学坐标系。②通过数学旋转坐标系计算指定像素旋转后的坐标。③由旋转坐标系转换为输出图像的坐标系。话不多说放上源代码:#include#include#includ原创 2017-11-21 16:00:34 · 789 阅读 · 0 评论 -
图像的平移操作
图像的平移变换就是将图像所有的像素坐标分别加上指定的水平偏移量和垂直偏移量。平移变换根据是否改变图像大小分为两种 左边平移图像的大小发生了,在保证图像平移的同时,也保存了完整的图像信息。右边的平移图像大小没有变化,故图像右下角的部分被截除了。平移变换原理设dx为水平偏移量,dy为垂直偏移量,(x0,y0)为原图像坐标,(x,y)为变换后图像坐标,则平移变换的坐标映射为原创 2017-11-21 15:41:15 · 8057 阅读 · 1 评论 -
离散傅里叶
原理:对一张图像使用傅立叶变换就是将它分解成正弦和余弦两部分。也就是将图像从空间域(spatial domain)转换到频域(frequency domain)。 这一转换的理论基础来自于以下事实:任一函数都可以表示成无数个正弦和余弦函数的和的形式。傅立叶变换就是一个用来将函数分解的工具。 2维图像的傅立叶变换可以用以下数学公式表达:式中 f 是空间域(spat原创 2017-11-30 20:30:06 · 798 阅读 · 0 评论 -
图像的距离变换---扫描
图像的距离变换实现了像素与图像区域的距离变换,使得最后生成的图像在该自己元素位置处的像素为0,临近的背景的像素具有较小的值,且随着距离的增大它的的数值也就越大。对于距离图像来说,图像中的每个像素的灰度值为该像素与距离其最近的背景像素间的距离,也就是说,给每个像素赋值为离它最近的背景像素点与其距离,一幅二值图像的距离变换可以提供每个像素到最近的非零像素的距离。距离变换的一般步骤如下:原创 2017-11-23 16:16:38 · 782 阅读 · 0 评论 -
Gamma校正原理及实现
gamma校正原理: 假设图像中有一个像素,值是 200 ,那么对这个像素进行校正必须执行如下步骤: 1. 归一化 :将像素值转换为 0 ~ 1 之间的实数。 算法如下 : ( i + 0. 5)/256 这里包含 1 个除法和 1 个加法操作。对于像素 A 而言 , 其对应的归一化值为 0. 783203 。 2. 预补偿 :根据公式 , 求出像素归一化原创 2017-11-23 18:20:46 · 84430 阅读 · 12 评论 -
灰度比特平面
像素是由比特组成的数字。例如,在256级的灰度图中,每个像素是由8比特(也就是1个字节)组成的。代替突出灰度级范围,我们可以突出特定比特来为整个图像的外观做出贡献。一幅8比特图像,可以认为是8个1比特的平面组成,其中平面1包含图像中所有像素的最低阶比特,而平面8包含图像中所有像素的最高阶比特。显示一幅8比特图像的第8个比特平面并不困难,可对它原创 2017-11-23 21:09:22 · 2913 阅读 · 1 评论 -
DeepFashion: 服装公开数据集概述
DeepFashion(http://mmlab.ie.cuhk.edu.hk/projects/DeepFashion.html)是香港中文大学开放的一个large-scale数据集。包含80万张图片,包含不同角度,不同场景,买家秀,买家秀等图片。每张图片也有非常丰富的标注信息,包括50种类别,1000种属性,Bbox,特征点。还有约30万的不同姿势/不同场景的图片pairs。转载 2017-12-15 13:32:43 · 3994 阅读 · 1 评论 -
Canny边缘检测原理及C++实现
从11.21开始写博客,到今天一个多月了,写了20多篇了,希望自己能坚持下去吧!在这里祝大家圣诞节快乐!Canny边缘检测算法是澳大利亚科学家John F. Canny在1986年提出来的,不得不提一下的是当年John Canny本人才28岁!到今天已经30年过去了,Canny算法仍然是图像边缘检测算法中最经典、有效的算法之一。一起睹一下大家Canny的风采:原创 2017-12-24 12:51:25 · 5208 阅读 · 11 评论 -
高斯滤波原理及实现
高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板系数,则随着距离模板中心的增大而系数减小。所以,高斯滤波器相比于均值滤波器对图像个模糊程度较小。什么是高斯滤波器既然名称为高斯滤波器,那么其和高斯分布(正态分布)是有一定原创 2017-11-26 10:51:37 · 10952 阅读 · 2 评论 -
图像的掩膜操作
掩码操作是根据核来重新计算每个像素点的值,也就是对该像素点根据周围的像素点做一个加权平均。 就以增强图片对比对来展示吧,使用的是下面的这个公式: 引用opencv中文社区的一句话:矩阵掩码的思想是:根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做原创 2017-11-25 15:03:32 · 2791 阅读 · 0 评论 -
图像卷积与滤波的一些知识点
本文转载自:http://blog.csdn.net/zouxy09/article/details/49080029一、线性滤波与卷积的基本概念 线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的转载 2017-11-25 10:06:12 · 257 阅读 · 0 评论