- 博客(97)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 OpenCV实践之路——opencv玩数独之二九宫格小方格的提取和数字的提取
在之前的博文OpenCV实践之路——opencv玩数独之一九宫格轮廓提取与透视变换中,已经实现了九宫格最外围矩形轮廓的提取,并利用透视变换把矩形摆正。今天接着上一篇的内容,在摆正后的矩形中检测并提取出九九八十一个小方格,并提取出含有数字的小方格中的数字。用的方法仍然是之前提到的轮廓提取,然后对轮廓进行多边形逼近,最后利用多边形的面积和顶点等信息对轮廓进行筛选。其中最耗时间的地方仍然是阈值化的时
2016-03-04 11:49:16 8806 10
原创 OpenCV实践之路——Hough变换检测猫眼
Hough变换Hough变换是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。霍夫变换于1962年由Paul Hough 首次提出,后于1972年由Richard Duda和Peter Hart推广使用,经典霍夫变换用来检测图像中的直线,后来霍夫变换扩展到任意形状物体的识别,多为圆和椭圆。Hough变换是一种使用表决原理的参数估计技术。其原理是利用图像空
2016-03-04 00:08:13 2808 1
原创 OpenCV实践之路——opencv玩数独之一九宫格轮廓提取与透视变换
本文部分参考自如下链接:Sudoku-recognizer。前几天发现了这个网页,觉得挺好玩的,就想自己实现一下。本以为只是把代码从Python转换到C++是一件很简单的事情,经过这几天的努力发现是自己想的太简单了。到现在也没有完全实现。前面的一小半可以说是参考了上述文章,所做的只是把opencv的代码转换下语言风格,但是到了后面随着Python语言用的越来越多,很多地方已经完全看不懂了,只能自己
2016-03-02 23:29:09 11968 4
转载 OpenCV实践之路——画出时钟并动态同步系统时间
本文并非原创,是在外网上看到的一个实例。原文参见Clock。不是翻译,也不是转载,只是自己实现了下,一点小记录。代码略有改动。过程大致分为两步:第一步,画出时钟;第二步,同步系统时间。其中第一步是跟opencv相关,第二步不太了解,不作过多记录。一个简单的时钟就是线段和圆的组合。包括最外围的圆,60根刻度线(其中12根整点刻度线)和时针分针秒针三根长的线段。画圆最简单:创建一个长宽相等
2016-02-28 23:25:41 4101 5
原创 OpenCV实践之路——TrackBar调整图像的亮度和对比度(OpenCV1和OpenCV2两种版本)
由于最开始接触的就是opencv2.0之后的版本,所以之前在看到Opencv1.0版本的C接口写就的代码时,感觉到诸多的不适应不习惯。今天做出了一个小小的突破,那就是见到opencv1.0的代码,我竟然想到用opencv2的C++版本重新实现一遍。顺便还简单了解了两个版本函数的变化和异同。本文前半部分主要参考下面的文章:HighGUI: Creating Interfaces。主要内容就是创建
2016-02-25 20:32:43 2998
原创 OpenCV实践之路——圆形切割和矩形切割
之前对于Opencv的学习,一直是一种查找资料然后运行别人的代码的状态。自己最多修改个变量什么的。直到上学期期末的时候才开始有意识地给自己让自己解决一些自己提出的问题。也许在大神们看来这些问题太多简单甚至幼稚,但是这就是现在的我给自己找的一些问题。能发出来的都是解决的,还有很多没有解决暂时没办法发出来。只能等不知道什么时候的以后,实现之后再发出来了。现在除了这些小练习之外,还在做的就是实现何凯明的
2016-02-22 23:46:04 14979 6
原创 OpenCV实践之路——矩形图片的对角线分割
在假期之前曾试图实现矩形图片对角线分割这么一个简单的任务。结果正方形的实现了,详见 OpenCV实践之路——方形图片对角线切割。矩形的时候总是出现一些我不能理解的错误,大概值指针越界之类的。当时对于图像像素边界的理解非常有限,这就是所谓的历史局限性吧。今天借助IamgeWatch对像素进行了深入的探究之后,详见OpenCV实践之路——像素初探。对于像素操作的理解前所未有地清晰。于是再次去实现了一下
2016-02-21 19:17:45 3877 1
原创 OpenCV实践之路——像素初探
安装ImageWatch之后,对于图片每一个点的像素值一目了然。由于之前对于像素点的操作老是出现各种问题,比如上次想要实现矩形图片的对角线切割就是一直没能成功。今天借助IamgeWatch正好探究下Mat数据结构中像素到底是怎么访问的。我用了一种比较直观的方式来访问像素。即利用at函数: cout (Point(3,2)) = " (Point(3, 2)) << endl (P
2016-02-21 18:06:22 1948
原创 OpenCV实践之路——opencv调试利器ImageWatch的安装使用
Opencv自带文档和教程应该好好利用。以前不知道怎么用,随着学习的深入,以前不知如何下手的东西现在都慢慢地清晰了起来。今天按照opencv的自带教程尝试了IamgeWatch插件的用法,非常好用,非常强大。下面的内容主要是参考下面的文档:Image Watch: viewing in-memory images in the Visual Studio debugger看原文估计
2016-02-21 15:10:30 2093 1
原创 OpenCV实践之路——circle函数实现出下落的小球动画
今天本来想到如何自己实现下SIFT呢,就像先学会如何在图像检测出最大值然后再最大值上画圆吧。就是这么简单的不要不要的。慢慢来嘛。于是开始先画圆,然后就停不下来了。。。画个圆之后想着怎么让圆实现下落的效果呢,最后终于还是试出来了。本来实现的更复杂点的,比如小球随机运动,达到windows屏保气泡的效果。但是现在已经是午夜了,先把这个简单的记录下来,复杂的慢慢研究吧。下面是在VS2013中实现的代码
2016-02-20 00:18:14 4705
原创 OpenCV实践之路——Qt中用opencv提取和匹配SIFT特征点
SIFT是我本科毕业设计就开始研究的一个算法,也是视觉领域极为经典的一个算法。SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。 Lowe将SIFT算法分解为如下四步:1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数
2016-02-19 08:23:46 5747 1
原创 OpenCV实践之路——Qt中调用OpenCV打开图片
千辛万苦,最终还是在一位前辈的帮助下把环境给配置好了。对于Qt中opencv环境的配置,记录以下几点:1.opencv一定要是自己用CMake编译的!就因为老是编译不成功,导致费了一周也没配置好。换系统、换不同版本的opencv,重装Qt根本没用。2.qt程序运行的时候要把opencv的相应*.dll文件拷贝到对应的Debug文件夹中去,即和*.pro、*.cpp等放在一起。
2016-02-18 21:18:36 25554 7
原创 VS2015——MFC加载图片遇到的问题
昨天花了一个晚上把MFC入门教程:1天深入浅出MFC看了一遍,虽然示例很少,但是真是让我有种拨云见日的感觉,感谢作者。于是今天就开始实践,按照七十一雾央的博客《MFC游戏开发》笔记三 游戏贴图与透明特效的实现,开始一步一步的跟着做,期间有如下问题。1.资源文件——添加——资源——Bitmap——导入:导入BMP图片失败;解决方法:用系统自带的画图工具另存为bmp图片再导入即
2016-01-27 15:54:06 10409 2
原创 OpenCV实践之路——方形图片对角线切割
学习opencv和C++已经有一段时间了,现在开始写一些小程序练手。在这里做一个记录。之前在群里看到有人求助如何沿对角线把一幅图像分成两幅图像,自己就试了一下,然而现在只能把方形图片分开,矩形的还在研究中。主要方法就是先把矩形图片resize成方形的,然后用循环分割开来。对于矩形图片的对角线分割,不知道为啥一直能成功。还在研究中。方形图片分割实现代码如下:#include#i
2016-01-20 13:22:44 3247
原创 解决OpenCV和Visual Studio更新之后删除附加依赖项继承的问题
把OpenCV由2.4.10更新到3.0版本,Visual Studio由2010更新到2015社区版。重新配置后问题来了,编译程序老是显示“fatal error LNK1181: 无法打开输入文件“opencv_calib3d2410.lib”。原因是附加依赖项的继承的值仍然是老版本的opencv库,本文解决了如何删除老版本的附加依赖项的问题。
2015-10-06 21:30:13 6174 3
原创 opencv第一个测试程序遇到的问题及解决
1.fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突。 解决方案:参见解决方案
2015-05-27 13:55:57 1357
原创 Visual Studio 2010 第一个C++程序成功之前遇到的问题及解决办法
机器视觉新手一枚,虽然现在在用MATLAB做图像处理,但是导师已经布置下任务——赶紧学会C++。不曾想两周之后来采用Visual Studio 2010把第一个程序"hello,world!"运行成功。现在把问题及解决方案做个记录。1.调试程序是显示找不到project.exe。 解决方法:项目>>属性>>链接器,把启用增量链接的值由“是”改为“否”。2.新建项目之后找不到“源文件”
2015-04-17 21:05:22 2052
Vim运行程序出错,vimrun system()::Invalid argument.
2016-06-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人