- 博客(56)
- 资源 (10)
- 收藏
- 关注
原创 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 398
转载 Win10 更新后 ubuntu 引导向丢失
问题1:win10经常自动更新,更新完事之后,Ubuntu引导项居然没了,无论是重启还是关机后再开,都会自动进入win。问题2:网上查是win10默认快速开机的原因所致(可以在 "控制面板—> 硬件和声音 —> 电源选项 —> 更改电源按钮的功能 —> 关机设置 —> 启用快速启动" 中看到),但是不能修改。Windows在快速启动模式下,所谓的关机不不是真正的关机,而是类似于win7中的休眠,当然Windows10的电源选项中也不存在休眠的说法。快速启动下的关机本质上就是
2020-05-29 17:50:49 1156
转载 动态规划入门
有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。比如,每次走1级台阶,一共走10步,这是其中一种走法。我们可以简写成 1,1,1,1,1,1,1,1,1,1。再比如,每次走2级台阶,一共走5步,这是另一种走法。我们可以简写成 2,2,2,2,2。当然,除此之外,还有很多很多种走法。这里就要用到了动态规划的思想了:动态规划...
2019-09-20 17:45:14 279
转载 Deep Learning(深度学习)
Deep Learning(深度学习)ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错。deeplearning.net主页,里面包含的信息量非常多,有...
2019-08-26 16:00:38 907
转载 傅里叶分析之掐死教程(完整版)
本文转载自知乎:https://zhuanlan.zhihu.com/p/19763358要让读者在不看任何数学公式的情况下理解傅里叶分析。傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实说,这么有意思的东西居然成了大学里的杀手课程,不得不归咎于编教材的人实在是太严...
2019-08-17 15:54:23 1698
转载 一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉
这篇博客转载自:https://blog.csdn.net/tsyccnh/article/details/79163834关于交叉熵在loss函数中使用的理解交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距。以前做一些分类问题的时候,没有过多的注意,直接调用现成的库,用起来也比较方便。最近开始研究起对抗生成网络(GANs),用到了交叉熵,发...
2018-08-27 19:38:43 1720
原创 LeetCode|203. Remove Linked List Elements(删除链表中的值等于val的所有的节点)
题目描述:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解题思路:声明一个指针指向第一个节点,利用这个指针来判断值是否相等,相等的话就删除,不相等的话就next,最后返回第一个节点的地址。代码如下:/**...
2018-07-27 10:45:13 489
原创 LeetCode|83. Remove Duplicates from Sorted List(删除排序链表中的重复元素)
题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解题思路:利用双指针的思想,首先指向第一个和第二个节点,判断节点的值是否相等,相等的话,就将第一个节点指向第三个节点,然后...
2018-07-26 10:37:34 279
原创 LeetCode|237-Delete Node in a Linked List (删除链表中的节点)
题目描述:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调...
2018-07-25 20:59:43 217
原创 leetcode|169-Majority Element
题目描述:给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解题思路:1. 初始化majorityIndex,并且维护其对应count;2. 遍历数组,如果下一个元素和当前候选元素相同,coun...
2018-05-19 22:20:51 199
原创 leetcode| 167:Two Sum II - Input array is sorted
题目描述:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target...
2018-05-19 21:31:51 156
原创 leetcode|122-Best Time to Buy and Sell Stock II
题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能...
2018-05-19 20:34:59 226
原创 leetcode|121:Best Time to Buy and Sell Stock
题目描述:思路:1.假设最大的利润是0,使用双重循环来比较差值,找出最大的利润值,时间复杂度O(n^2),空间复杂度O(1)代码如下:class Solution{public: int maxProfit(vector<int>& prices) { int size = prices.size(); int profit = 0; for (int i ...
2018-05-19 20:18:22 192
转载 《OpenCV3编程入门-毛星云》第三部分 掌握imgproc组件
平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10截止今天我终于把《OpenCV3编程入门-毛星云》这本书看完了,看了将近两个月终于看完了!看的挺累的,有点吃力,很多讲算法原理的地方看的很模糊。但是因为我一直带着一个问题去看:如何识别摄像头视频流中的红外LED灯?每看完一个案例我就会想有没有帮助,能不能用的上,然后做一些笔记,
2018-01-25 20:43:36 715
转载 《OpenCV3编程入门-毛星云》第二部分 初探core组件
平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10童鞋们,我们继续翻目录,哈哈哈当然我不是翻目录,我是真的已经一字一句看过了,我自认为C语言基础还是很好的,代码方面可以看得很快。但是算法方面有点吃力。下面红色文字是我自己的总结!第二部分 初探core组件 83
2018-01-25 20:42:51 438
转载 《OpenCV3编程入门-毛星云》第一部分 快速上手OpenCV
平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10接下来的很长一段时间我将沿着学习,记录整个学习过程和心得,既是自己的学习笔记,也为后来人提供一份参考资料。由于我上半年研究了一段时间OpenCV,各种平台的安装使用都很熟练了,大家可以去看我前面的文章。主要是为了适配我们公司一个合作商的Android图像识别
2018-01-25 20:41:23 6936 1
转载 《OpenCV3编程入门》毛星云编著
最近几天开始收集图像识别的相关资料:程序开源库主要就是OpenCV,这是主流工具,所以我暂时也没去了解其他的算法库。算法讲解类的书籍,网友推荐了基本经典的,《数字图像处理第二版中文版(冈萨雷斯)》、《模式识别-第二版(西奥多里蒂斯 著,李晶皎译)》,这俩是国外著名的,国内应该更多,反正现在也没时间看,先不了解那么多。首先就来对OpenCV进行深入的研究学习
2018-01-25 20:40:49 16231 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 518
原创 肤色检测
方法一:基于YCrCb颜色空间Cr,Cb范围筛选法思路如下:1)将RGB模型转换为YCbCr模型2)阈值分割:据资料显示,正常黄种人的Cr分量大约在133至173之间,Cb分量大约在77至127之间。大家可以根据自己项目需求放大或缩小下面放上源代码:#include#include#includeusing namespace cv;
2018-01-24 21:31:40 6999 1
原创 绿幕背景视频抠图
绿幕背景视频抠图对实时性要求比较高,如果使用kmeans或者GMM的话那么就太耗时了,达不到要求,因此将RGB空间转换到HSV色彩空间进行处理 关于HSV 中颜色分量范围请看这篇博客:http://blog.csdn.net/linqianbi/article/details/78975998 绿幕背景视频抠图的流程图:下面看代码:#includeus
2018-01-24 17:41:01 10825 3
原创 高斯混合模型GMM
写在前面: Gaussian Mixture Model (GMM)。事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estimation ),简单地说,k-means 的结果是每个数据点被 assign 到其中某一个 cluster 了,而 GMM 则给出这些
2018-01-24 12:01:15 1815
原创 Opencv图像分割之K-means聚类算法
kmeans是非常经典的聚类算法,至今也还保留着较强的生命力,图像处理中经常用到kmeans算法或者其改进算法进行图像分割操作,在数据挖掘中kmeans经常用来做数据预处理。opencv中提供了完整的kmeans算法,其函数原型为:double kmeans( InputArray data, int K, InputOutputArray bestLabels, TermCriter
2018-01-22 17:03:12 12473 2
原创 Opencv图割Grabcut
Grabcut的算法实现的流程:**********参数说明****************GrabCut函数使用 在OpenCV的源码目录的samples的文件夹下,有grabCut的使用例程,请参考:opencv\samples\cpp\grabcut.cpp。而grabCut函数的API说明如下:void cv::gr
2018-01-21 21:36:18 1254
原创 分水岭算法的原理及Opencv实现
分水岭算法主要用于图像分段,通常是把一副彩色图像灰度化,然后再求梯度图,最后在梯度图的基础上进行分水岭算法,求得分段图像的边缘线。 下面左边的灰度图,可以描述为右边的地形图,地形的高度是由灰度图的灰度值决定,灰度为0对应地形图的地面,灰度值最大的像素对应地形图的最高点。我们可以自己编程实现灰度图的地形图显示,工程FirstOpenCV6就实现了简单的这个功能,比如上边...
2018-01-21 16:33:38 3572
原创 Opencv车牌识别之车牌区域定位(一)
在我的车牌区域定位的方法的流程是:1.首先使用高斯滤波去掉一些干扰的元素2.然后将彩色图转换成灰度图3.然后利用Soble边缘提取的方法提取垂直方向的边缘4.利用OTSU的二值化方法将步骤3中的图二值化5.利用水平扫描与垂直扫描的方法定位出车牌的区域下面详细讲解每一步的程序代码:1.高斯滤波的详细讲解见:http://blog.csdn.net/linqianb
2018-01-18 15:36:39 23184 14
转载 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 3098
转载 彩色图像--色彩空间 HSI(HSL)、HSV(HSB)
这篇博客转载自:http://blog.csdn.net/tonyshengtan 开篇废话色彩空间介绍最后两种与人类感知相对较接近的两种空间,彩色图像处理后面的内容大部分用在图像的基础处理,而如果想学习图像分析,应该开始学习一些模式识别和机器学习的算法,打算最近开始学习一些,并且开一个新的博客主题,欢迎讨论。。。 今天介绍下两种相对较接近色彩定义的,人的视觉只能分辨颜
2018-01-04 20:11:56 4442
原创 形态学操作(腐蚀、膨胀、开操作、闭操作、形态学梯度、顶帽、黑帽)
形态学其他操作(用的不多,如果忘了也可以通过膨胀腐蚀得到相同效果)1.开运算2.闭运算 3.形态学梯度4.顶帽5.黑帽这篇博客写的比较好:http://blog.csdn.net/zxli3011/article/details/50522939
2017-12-30 14:34:56 1995
原创 小案例---颜色圆的检测
颜色圆检测的步骤:1.将原始图片的BGR颜色空间转换到HSV色彩空间有关HSV的文章见下面:http://blog.csdn.net/viewcode/article/details/82037282.根据红色在HSV中的范围,对图像进行阈值分割,红色的圆被保留(白色),其他的变成黑色3.对步骤二检测到的高低阈值的颜色圆进行合并,找出属于红色的圆4.利用霍夫圆检测算法找
2017-12-30 11:14:35 1861 3
原创 Harris角点检测原理及C++实现
1. 首先,我们不禁要问什么是harris角点? 对于角点,到目前为止还没有明确的数学定义。但是你可以认为角点就是极值点,即在某方面属性特别突出的点。一般的角点检测都是对有具体定义的、或者是能够具体检测出来的兴趣点的检测。这意味着兴趣点可以是角点,是在某些属性上强度最大或者最小的孤立点、线段的终点,或者是曲线上局部曲率最大的点。 通俗的来说,在一副图像中
2017-12-29 12:30:29 25952 19
原创 Moravec角点检测原理及C++实现
(1)Moravec角点检测算法原理Moravec角点检测算法是最早的角点检测算法之一。该算法将角点定义为具有低“自相关性”的点。算法会检测图像的每一个像素,将像素周边的一个邻域作为一个patch,并检测这个patch和周围其他patch的相关性。这种相关性通过两个patch间的平方差之和(SSD)来衡量,SSD值越小则相似性越高。如果像素位于平滑图像区域内,周围的patch都会非常相似。
2017-12-28 18:03:29 1691 1
原创 改进边缘检测算子----Marr-Hildreth算法
边缘检测的改进:一、边缘检测方法是以使用较小的算则为基础的,Marr和Hildreth证明了:(1)灰度变化与图像尺寸无关,因此他们的检测要求使用不同尺寸的算子;(2)灰度的突然变化会在一阶导数中引起波峰或波谷,或在二阶导数中等效地引起零交叉。根据这些建议,边缘检测算子应有两个显著特点:(1)能计算图像中每一点处的一阶导数或二阶导数的数字近似的微分算子;
2017-12-27 16:05:16 6084 1
原创 Canny边缘检测原理及C++实现
从11.21开始写博客,到今天一个多月了,写了20多篇了,希望自己能坚持下去吧!在这里祝大家圣诞节快乐!Canny边缘检测算法是澳大利亚科学家John F. Canny在1986年提出来的,不得不提一下的是当年John Canny本人才28岁!到今天已经30年过去了,Canny算法仍然是图像边缘检测算法中最经典、有效的算法之一。一起睹一下大家Canny的风采:
2017-12-24 12:51:25 5231 11
原创 基于傅里叶变换的旋转文本图像矫正
首先介绍一下我的算法思路:先用傅里叶变换求出频域的图像利用霍夫直线变换求出里面的直线的旋转角度根据倾斜角旋转矫正然后给出OpenCV的实现算法:#include #include #include #include using namespace cv;using namespace std;//傅里叶变化模块Mat DFT(Mat srcImage){
2017-12-21 14:57:48 4300
转载 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 4083 1
原创 离散傅里叶
原理:对一张图像使用傅立叶变换就是将它分解成正弦和余弦两部分。也就是将图像从空间域(spatial domain)转换到频域(frequency domain)。 这一转换的理论基础来自于以下事实:任一函数都可以表示成无数个正弦和余弦函数的和的形式。傅立叶变换就是一个用来将函数分解的工具。 2维图像的傅立叶变换可以用以下数学公式表达:式中 f 是空间域(spat
2017-11-30 20:30:06 821
原创 Sobel算子的理解
sobel算子主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。原理算子使用两个33的矩阵(图1)算子使用两个33的矩阵(图1)去和原始图片作卷积,分别得到横向G(x)和纵向G(y)的梯度值,如果梯度值大于某一个阈值,则认为该点为边缘点Gx方向的相关模板:Gy方向的相关模板:看了网上的很多资料,都把卷积和相关的概念给弄糊了,书上
2017-11-30 12:41:11 41695 8
原创 高斯滤波原理及实现
高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板系数,则随着距离模板中心的增大而系数减小。所以,高斯滤波器相比于均值滤波器对图像个模糊程度较小。什么是高斯滤波器既然名称为高斯滤波器,那么其和高斯分布(正态分布)是有一定
2017-11-26 10:51:37 11036 2
原创 图像的掩膜操作
掩码操作是根据核来重新计算每个像素点的值,也就是对该像素点根据周围的像素点做一个加权平均。 就以增强图片对比对来展示吧,使用的是下面的这个公式: 引用opencv中文社区的一句话:矩阵掩码的思想是:根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做
2017-11-25 15:03:32 2828
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人