OpenCV实践之路
文章平均质量分 82
记录自己opencv的学习实践历程
冰不语
这个作者很懒,什么都没留下…
展开
-
任意图像转素描:Python分分钟实现
图像转素描效果展示看到这个标题你可能觉得,我这次终于开始标题党了。然而众所周知,我是标图党~,一般不会做标题党这种事情,既然说了分分钟实现,那就说明——代码在十行左右。代码虽少,但是效果确实一点都不含糊(即使含糊了…我也给出了调参的空间~)。按照惯例,先看两张效果图:还有一张在最上方。我感觉我肯定是膨胀了,示例图片都敢不全放美女图片了。不全用美女示例图片的另一个原因是,之前做的AI小素只能做脸部的素描,其他部分的素描做的一塌糊涂(训练集只有脸部图片),这次换个天坛这种建筑图片,也能说明这个CV原创 2020-09-22 13:22:21 · 1474 阅读 · 2 评论 -
OpenCV DNN 模块-风格迁移
本文主要介绍OpenCV的DNN模块的使用。OpenCV的DNN模块自从contrib仓库开始,就是只支持推理,不支持训练。但是仅仅只是推理方面,也够强大了。现在OpenCV已经支持TensorFlow、Pytorch/Torch、Caffe、DarkNet等模型的读取。本文们就以风格迁移为例,来看一下OpenCV DNN模块的用法。相比于复杂而耗时的模型训练过程,模型推理就显得简单多了。简单来说,过程就是:加载模型输入图像预处理(跟训练过程一样的方式,增强除外)模型推理1. 加载模型因为.原创 2020-07-05 22:05:50 · 2550 阅读 · 1 评论 -
OpenCV学完基础知识不知道做什么?!我不相信这是真的
编程是需要练习的,需要项目练手的。听不少人说过,学习完OpenCV的基础部分之后就不知道该干什么了?怎么可能呢?实际上能做的事情很多,不要因为觉得太简单或者太难就不动手做了。只要有兴趣有时间有需要,就先动手做起来。哪怕先实现其中最简单的部分,后面再慢慢的一边学习一边添加功能,也是好的。下面推荐一些项目,没有源码,自己动手查资料做哦,即使是网上能找到代码我还是推荐自己写一遍。实现原创 2018-01-29 14:05:00 · 26039 阅读 · 0 评论 -
魔幻光影滤镜(3):美女人像“划重点”
(上面霉霉的处理效果图在末尾)上一篇文章:魔幻光影滤镜(2):仿Redfield Fractalius滤镜 之中,所有示例都是用的动物图片,不论是开头的PS示例还是后面程序用的,都是动物图。有位小伙伴表示,也许可以试试人像的效果,这简直是打开了新世界的大门啊,为啥我一直没有想到呢。这位小伙伴不只是说说而已,回去他还真尝试了一下,而且效果感人。除了小伙伴尝试了人像之外,我也尝试了原创 2018-01-29 13:53:59 · 1541 阅读 · 1 评论 -
魔幻滤镜Gabor Filter 原理与实现(python & C++)
Gabor Filter以下定义翻译引用自维基百科: 在图像处理领域,以Dennis Gabor命名的Gabor滤波器,是一种用于纹理分析的线性滤波器,即它主要分析的是,图像在某一特定区域的特定方向上是否有特定的频率内容。当代许多视觉科学家认为,Gabor滤波器的频率和方向的表达与人类的视觉系统很相似,尽管并没有实验性证据和函数原理能证明这一观点。研究发现,Gabor滤波器特别适合于纹原创 2018-01-26 11:50:08 · 2515 阅读 · 0 评论 -
魔幻光影滤镜(2):仿Redfield Fractalius滤镜
引言熟悉PS的人也许知道,PS滤镜中有一个Redfield Fractalius,可以让图片展现出魔幻的效果,比如一直可爱的喵星人,经过魔幻光影滤镜处理之后就会展现出下面威武霸气的样子:还有这样这样那么我们能不能用OpenCV来实现这样的效果呢?答案显然是可以的。而且OpenCV还提供了相应的例子,这就大大简化了我们学习的负担。今天我们就来看看这个程序吧。程序要原创 2018-01-26 11:57:18 · 1672 阅读 · 0 评论 -
元旦赠书 | 18本纸质书:OpenCV、Python和机器学习,总有一本适合你
【本文首发于公众号【CVPy】。以下赠书活动需要在公众号中参与。文章末尾扫码关注。】送福利圣诞的时候送的三本书已经发出,而且其中的两人已经收到,路途较远的那个还在路上。当时主页君原话是这样的: 由于准备仓促,此次赠书数量不多,不过以后还有机会,主页君会为大家多多争取。大家一起努力,大家越给力,主页君越有底气。是的,上次送了三本,但是大家很不过瘾,主页君说了会为大家多多争取的!这次主页君蒙电子工原创 2017-12-29 20:43:37 · 3616 阅读 · 0 评论 -
用Python给头像加上圣诞帽
引言随着圣诞的到来,大家纷纷@官方微信给自己的头像加上一顶圣诞帽。当然这种事情用很多P图软件都可以做到。但是作为一个学习图像处理的技术人,还是觉得我们有必要写一个程序来做这件事情。而且这完全可以作为一个练手的小项目,工作量不大,而且很有意思。用到的工具OpenCV(毕竟我们主要的内容就是OpenCV…)dlib(前一篇文章刚说过,dlib的人脸检测比OpenCV更好用,而且dlib有OpenCV原创 2017-12-23 16:59:13 · 5766 阅读 · 2 评论 -
人脸识别博客整理及学习建议
一、前言之前基于OpenCV断断续续写了几篇关于人脸识别的博客。最开始是写了三篇一系列整套的流程。后来由于问问题的人太多,就又针对一些问题写了些东西,后来OpenCV3出来之后把程序又改成了OpenCV3版本。并且把程序修改的极其容易上手运行,我觉得改的不能更简单了,因为配置好之后其实修改下路径只需要点运行就差不多了。再后来,OpenCV3.3出来之后,人脸识别模块的API发生了变化,于是继续写出来原创 2017-12-14 11:41:09 · 9552 阅读 · 11 评论 -
图像处理笔试面试题
秋招各种笔试面试,总结下遇到的图像处理和C++的题目。写下来的都是能记起来的,记不起来的应该也有不少。大概让没有经历过的人知道会遇到什么样的问题,可以提前准备下。除了一下题目之外,最多的还是围绕着你做过的项目来问的。一、图像处理题目注意,一下所有需要写代码的题目,不允许使用OpenCV的Mat类。如果图片内容需要用指针读取。给定0-1矩阵,求连通域。(遇到过N次,笔试面试都有,最好做到能徒手hac原创 2017-12-12 18:20:20 · 10725 阅读 · 6 评论 -
OpenCV3.3人脸识别模块的API的变化
OpenCV3.3人脸识别模块的API的变化1. 前言开始用最新版的OpenCV进行人脸识别的小伙伴也许已经发现了,人脸识别的最新API变化了。这也正是人脸识别等contrib模块没有放到主仓库的原因:不稳定,仍在开发中。当然这次的变化也预示着一些好的事情,毕竟自从OpenCV2.4时期人脸识别模块加入到OpenCV之后就几乎没怎么变过,这次变化说明又有人开始为OpenCV的人脸识别模块贡献代码了。原创 2017-11-19 13:37:31 · 8177 阅读 · 5 评论 -
OpenCV的dnn模块调用TesorFlow训练的MoblieNet模型
一、初得模型那是一个月之前的事情了,我利用TesorFlow Object Detection API训练了现在目标检测里面应该是最快的网络MobileNet。当时的目的就只是学习整个finetuning的流程,于是我只是用了20张自己标注的人脸样本图片作为训练集去finetuning,训练完之后的模型通过修改TesorFlow Object Detection API自带的例程代码,即object原创 2017-11-01 18:06:30 · 25515 阅读 · 48 评论 -
OpenCV的鼠标操作——用鼠标画矩形(代码解读)
起因知乎上被邀请回答一个问题,关于OpenCV的鼠标操作的问题。我发现回答下来写了不少东西,可以整理为一篇文章发出来,顺便说下不少人关心的如何用操作鼠标,比如如何用鼠标在图像上画一个矩形或者说选择一个矩形的ROI。知乎上的问题问的是下面这段代码是什么意思。正好,这段代码我是看过的,而且就在最近两周。所以正好可以说道一下。介绍这一段代码我最初是在contrib模块里面tracking模块的sample原创 2017-08-07 10:36:19 · 5694 阅读 · 1 评论 -
OpenCV3.3出炉,DNN为最大亮点
OpenCV3.3在8月3号正式出炉,想要体验最新特性的朋友可以去官网下载了,反正配置一下只需要几分钟。这次最主要的更新就是,终于把DNN模块从contrib里面提到主仓库里面,放到了官方发布版中。虽然我配置的一直是OpenCV with contrib,但是对于DNN模块,限于电脑配置太低,一直没有怎么尝试。这次可以借着新版发布抽空尝试一下了。按照官方介绍,DNN现在有下面几点特性:无需任何依赖新原创 2017-08-06 11:08:21 · 7135 阅读 · 6 评论 -
人脸识别源码运行指南
前言人脸识别的源码放出来之后,不少小伙伴下载之后仍然不能运行成功。于是被逼无奈,把源代码改成了我认为最容易运行成功的版本。即使如此,我认为写下这个指南还是有必要的。因为反复回答相同的问题实在是太累人了。 重复一遍,本文环境为win7+vs2015+opencv3.2_with_contrib源码下载地址公众号回复:人脸识别源码或者 网盘: http://pan.baidu.com/s/1b1J2原创 2017-06-26 11:11:12 · 7875 阅读 · 29 评论 -
OpenCV|图片与视频的相互转换(C++&Python)
前言在学习opencv的过程中,终会遇到需要把视频转换成图片处理,或者把处理后的图片保存为视频格式的时候。这篇文章中就来看一下如何进行图片和视频之间的相互转换。视频转图片对于这种情况大家应该很熟悉了。因为学习opencv的时候肯定打开过摄像头,比如打开摄像头检测个人脸或者笑脸之类的。在这个过程中,实际就是把摄像头拍摄到的视频转换为一帧一帧的图片连续地进行处理。我们知道,对于打开视频和摄像头,open原创 2017-06-12 18:21:58 · 18598 阅读 · 6 评论 -
小密圈:OpenCV实践之路
最近发现一个很多意思的东西,小密圈。号称连接一千位铁杆粉丝,知识变现。据说小密圈可能是最好的微信公众号读者论坛。也做一个尝试,看有多少人愿意加入。仍然是分享OpenCV实战的内容和资料,除了平时写的内容分享之外,也会分享一些我平时的参考资料。原创 2017-06-11 18:55:32 · 1883 阅读 · 0 评论 -
个人博客开通!——Django从入门到...WordPress
个人博客网站开通了,欢迎大家来逛:6xiaolong.cn网站搭建的过程简直是曲折。很多人都想有个自己的个人网站,平时发发博客啥的,想想就觉得高大上。。在搭建网站的诸多方法中,我一开始选择了最难的一种——自己写一个。然而…原因是这样的。当学习了Python之后,发现Python是可以写网站的。于是在本学期开学的时候心血来潮,就想要自己写一个博客网站。在什么都不懂的情况下粗略地了解了Django和F原创 2017-06-10 12:04:14 · 3786 阅读 · 5 评论 -
如何遍历文件夹下的所有图片(Pyhton&C++)
前言虽然本文说的是遍历图片,但是遍历其他文件也是可以的。在进行图像处理的时候,大部分时候只需要处理单张图片。但是一旦把图像处理和机器学习相结合,或者做一些稍大一些的任务的时候,常常需要处理好多图片。而这里面,一个最基本的问题就是如何遍历这些图片。用opencv做过人脸识别的人应该知道,那个项目中并没有进行图片的遍历,而是用了一种辅助方案,生成了一个包含所有图片路径的文件at.txt,然后通过这个路径原创 2017-05-22 18:33:53 · 19447 阅读 · 3 评论 -
Python简单图片爬虫
经常在逛知乎,有时候希望把一些问题的图片集中保存起来。于是就有了这个程序。这是一个非常简单的图片爬虫程序,只能爬取已经刷出来的部分的图片。由于对这一部分内容不太熟悉,所以只是简单说几句然后记录代码,不做过多的讲解。感兴趣的可以直接拿去用。亲测对于知乎等网站是可用的。上一篇分享了通过url打开图片的方法,目的就是先看看爬取到的图片时什么样,然后再筛选一下保存。这里用到了requests库来获取页面信息原创 2017-05-15 22:49:37 · 3325 阅读 · 0 评论 -
如何通过URL打开图片(Python)
不论是用opencv还是PIL,skimage等库,在之前做图像处理的时候,几乎都是读取本地的图片。最近尝试爬虫爬取图片,在保存之前,我希望能先快速浏览一遍图片,然后有选择性的保存。这里就需要从url读取图片了。查了很多资料,发现有这么几种方法,这里做个记录。本文用到的图片URL如下:img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0o原创 2017-05-08 11:36:10 · 42236 阅读 · 1 评论 -
OpenCV玩九宫格数独(二):knn数字识别
前言首先需要说明,这里所说的数字识别不是手写数字识别!但凡对机器学习有所了解的人,相信看到数字识别的第一反应就是MNIST。MNIST是可以进行数字识别,但是那是手写数字。我们现在要做的是要识别从九宫格图片中提取出来的印刷体的数字。手写数字集训练出来的模型用来识别印刷体数字,显然不太专业。而且手写体跟印刷体相差不小,我们最看重的正确率问题不能保证。本文从零开始做一遍数字识别,展示了数字识别的完整流程原创 2017-04-17 10:21:01 · 6969 阅读 · 2 评论 -
OpenCV玩九宫格数独(三):九宫格生成与数独求解
OpenCV玩九宫格数独(三):九宫格生成与数独求解前言在此之前,OpenCV玩九宫格数独(一)和(二)分别介绍了如何从九宫格图片中提取出已知数字和如何用knn训练数字识别模型。在这些前期工作都已经完成的基础上,接下来我们需要做什么呢?我们要做的有三部分:1.生成九宫格,也就是生成一个9x9的矩阵,把一直的数字按照图片中的位置填到矩阵中的相应位置,其他位置全部置0。2.编写数独求解算法,对九宫格矩阵原创 2017-04-18 10:34:07 · 6056 阅读 · 4 评论 -
OpenCV玩九宫格数独(一)——九宫格图片中提取数字
前言首先要明确我们的任务。要想解数独,需要进行计算,图片格式的数字肯定是不行的,所以必须把图片上的数字转换为实实在在的数字才能进行计算。要得到实实在在的数字,我们需要做的是对图片上的数字进行提取和识别。本文先说第一步,图片中数字的提取。在一年之前,我曾用C++尝试过opencv解数独,但由于当时水平有限,未能完成。当时的成果就是透视变换的应用和方格数字的提取。现在稍微简化一下工作,不再从倾斜的数独图原创 2017-04-14 10:29:18 · 14385 阅读 · 16 评论 -
OpenCV玩九宫格数独(零)——预告篇
九宫格数独源于18世纪的瑞士,又称九宫格,有九行、久列和九宫。玩家需要在九宫格中,根据已知的数字,利用逻辑和推理能力,填出所有的空格中应有的数字。填的时候要求每行、每列和每宫都要不重复地包含数字0-9。每行、每列和每宫中1-9都必须出现且只能出现一次,故称之为数独。数独游戏考察的是解题者的观察能力和逻辑推理能力,虽然规则很简单,但是数字的排列方式却是包含千变万化,是一种锻炼思维的绝佳方式。有时候数独原创 2017-04-13 11:36:12 · 3366 阅读 · 0 评论 -
OpenCV检测篇(二)——笑脸检测
前言由于本文与上一篇OpenCV检测篇(一)——猫脸检测具有知识上的连贯性,所以建议没读过前一篇的先去阅读一下前一篇,前面讲过的内容这里会省略掉。笑脸检测其实也没什么可省略的,因为跟在opencv中,无论是人脸检测、人眼检测、猫脸检测、行人检测等等,套路都是一样的。正所谓:自古深情留不住,总是套路得人心。发挥主要作用的函数有且仅有一个:detectMultiScale()。前一篇猫脸检测中已经提到过原创 2017-04-07 09:05:53 · 19108 阅读 · 9 评论 -
OpenCV检测篇——猫脸检测
OpenCV检测篇(一)——猫脸检测OpenCV检测篇一猫脸检测OpenCVOpenCV的Python环境配置猫脸检测代码效果举一反三下期预告OpenCVOpenCV是时下最流行的基于C++的开源计算机视觉库,它功能丰富,函数众多,从最基本的读写图片,到简单的图像处理(比如降噪滤波、边缘检测、图像变换、特征提取等),再到更加高级的行人检测、人脸识别、文本识别等,尽皆包含。在OpenCV提原创 2017-04-02 16:51:56 · 10647 阅读 · 6 评论 -
OpenCV之识别自己的脸——C++源码放送
OpenCV之识别自己的脸——C++源码放送前言在将近一年之前,我在CSDN专栏《OpenCV实践之路》中连续发了三篇博客,完整地描述了基于OpenCV进行人脸识别的全过程。三篇都将近一万的阅读量和大量的评论的表明,人脸识别果然是大家在学习OpenCV过程中最感兴趣的课题,之一。当然,也有可能是本科生毕设老师最感兴趣的课题之一。。。由于当时写的时候是按照前后流程来的,所以源码比较分...原创 2017-04-05 09:49:57 · 12893 阅读 · 48 评论 -
Visual Studio 2015一分钟配置opencv及CMake编译OpenCV3.1(含opencv-contrib)
本文由@星沉阁冰不语出品,转载请注明作者和出处。文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/52821497微博:http://weibo.com/xingchenbing 本文包含以下几个内容,大家可以根据自己的需要自行选取内容观看。至于为什么这么晚才写这么基础的博客,主要是因为没有经过原创 2016-11-23 14:36:54 · 17279 阅读 · 16 评论 -
OpenCV实践之路——雅虎色情图片检测神经网络试用报告
十一的时候,老司机再次发车,雅虎开源了其色情图片检测神经网络。老司机们得到消息第一时间就搭建了自己的检测平台。大家纷纷表示根本找不到数据测试的同时不忘言不由衷地抱怨以前写代码累脑袋,现在写代码累腰。有人说的好:一个爬虫+色情图片检测神经网络=一个会发车的程序猿。然而我一直等到现在才有开始试用,难道还不能说明问题吗!话不多说,开始我的试用之旅。首先找到雅虎开源项目原创 2016-10-15 12:53:48 · 42582 阅读 · 13 评论 -
OpenCV实践之路——用OpenCV和Dlib进行人脸颜值预测(Python)
OpenCV实践之路——用OpenCV和Dlib进行人脸颜值预测本文由@星沉阁冰不语出品,转载请注明作者和出处。文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/52804013微博:http://weibo.com/xingchenbing本项目部分基于这个博客Computer Vision for Predicting Faci原创 2016-10-13 14:29:29 · 10677 阅读 · 11 评论 -
OpenCV实践之路——人脸识别之三识别自己的脸
在之前OpenCV实践之路——人脸识别之一数据收集和预处理和OpenCV实践之路——人脸识别之二模型训练两篇博客中,已经把人脸识别的整个流程全部交代清楚了。包括今天这篇人脸识别方面的内容都已经在上述第二篇博客中的代码中有所体现。只是今天的内容会让结果更加的形象化。仅此而已。可以说,本篇的内容是前面诸多内容的一个整合。所以今天的内容也很简洁。简单说下流程:1.打开摄像头。2.加载人脸检测原创 2016-05-21 21:18:02 · 70443 阅读 · 113 评论 -
OpenCV实践之路——人脸识别之二模型训练
本文由@星沉阁冰不语出品,转载请注明作者和出处。文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51386949微博:http://weibo.com/xingchenbing 在之前的博客人脸识别之一数据收集和预处理之中,已经下载了ORL人脸数据库,并且为了识别自己的人脸写了一个拍照程序自拍原创 2016-05-14 20:42:03 · 61248 阅读 · 177 评论 -
OpenCV实践之路——人脸识别之一数据收集和预处理
前段时间对人脸检测和人脸标记进行了一些尝试:人脸检测(C++/Python)和用Dlib库进行人脸检测和人脸标记。但是检测和识别是不同的,检测解决的问题是图片中有没有人脸;而识别解决的问题是,如果一张图片中有人脸,这是谁的脸。人脸检测可以利用opencv自带的分类器,但是人脸识别就需要自己收集数据,自己训练分类器了。opencv给出的有人脸识别的教程:Face Recognition with原创 2016-05-12 21:27:07 · 66219 阅读 · 75 评论 -
OpenCV实践之路——使用imread()函数读取图片的六种正确姿势
经常看到有人在网上询问关于imread()函数读取图片失败的问题。今天心血来潮,经过实验,总结出imread()调用的四种正确姿势。通常我要获取一张图片的绝对路径是这样做的:在图片上右键——属性——安全——对象名称。然后复制对象名称就得到了图片的绝对路径。如图:然而这样得到的路径直接复制粘贴到vs里面会直接报错,如下:可以看出我们获取的绝对路原创 2016-05-11 16:19:35 · 120362 阅读 · 13 评论 -
OpenCV实践之路——MFC与OpenCV联合打开摄像头
在之前的一篇博客中已经记录了如何打开一张图片,能打开图片之后,自然就是尝试打开摄像头。在之前打开图片的时候已经知道了怎么应用按钮控件和图片控件,虽然都没记录。。。最最重要的是,知道了怎么让MFC与OpenCV的数据交互——Mat与CImage相互转换。有了之前的基础,打开摄像头就可以得心应手了。还是直接上代码,然后再说问题:void CMFCtestDlg::OnBnClickedButton原创 2016-05-09 00:15:43 · 9165 阅读 · 6 评论 -
OpenCV实践之路——opencv与MFC强强联合打开图片
本文由@星沉阁冰不语出品,转载请注明作者和出处。 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51348394 微博:http://weibo.com/xingchenbing opencv在图像处理和计算机视觉算法方面无疑是非常强大的,但是其GUI界面却是差强人意。当然原因很简单,这不是OpenCV开发人员关注的重点,他原创 2016-05-08 23:43:25 · 12773 阅读 · 26 评论 -
OpenCV实践之路——行人检测
行人检测是视觉领域很热也很有用的一个主题,特别是在无人驾驶中,行人检测的重要性不言而喻。在之前进行了人脸检测之后,行人检测就显得简单多了。过程大致与人脸检测一样,都是先加载分类器,然后进行多尺度检测。就偷懒不再赘述。感兴趣的可以看人脸检测的这一篇文章:OpenCV实践之路——人脸检测(C++/Python)这里只是把代码放在这里,没几行,而且都有着注释:#include #inclu原创 2016-04-26 23:11:50 · 24467 阅读 · 5 评论 -
OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
看人脸方面的资料的时候,会发现很多人都会提到dlib这个库,于是就安装尝试下这个库看看它到底有多么的神奇。今天只是初次尝试一下dlib到底怎么用。安装dlib:我的操作系统是window 7,安装了pip,所以直接可以命令行安装Python的各种扩展库pip install dlib主要步骤:1.加载dlib自带的frontal_face_detector作为我们的人脸原创 2016-04-11 00:13:31 · 30981 阅读 · 35 评论 -
OpenCV实践之路——人脸检测(C++/Python)
之前一直觉得人脸检测是非常麻烦的,即使是用opencv,麻烦到我都不敢去碰。这两天仔细看了下,如果只是调用opencv自带的分类器和函数的话,简直是简单。这不,正好最近也在学习Python,索性就用C++和Python两种语言都实现一下。当然,我现在这个是最简单的版本。步骤:调用opencv训练好的分类器和自带的检测函数检测人脸人眼等的步骤简单直接:1.加载分类器,当然分类器事先要放在原创 2016-04-09 15:29:10 · 27340 阅读 · 52 评论