OpenCV
文章平均质量分 55
JKhere
程序猿
展开
-
OpenCV安装那些事儿(一)
Ⅰ.VC6.0安装配置OpenCV2.0以上的版本(NO)本人想在windows7下面安装OpenCV2.4版本,但是笔记本只安装了VC6.0,不想为了用OpenCV而安装VS2010(VS2010重装系统前安装过,超卡,毕竟是09年以前的老本)。在网上查找VC6.0安装OpenCV2.4的教程,没有成功。网络上只有VC6.0+OpenCV1.0的配置教程,没有配置OpenCV2.0以上版本成原创 2013-03-04 09:10:51 · 2936 阅读 · 2 评论 -
vs2010 opencv2.4 中出现的问题
用vs2010配置opencv2.4中,调试程序时出现Unhandled exception at 0x7c812fd3 in opencvtest.exe: Microsoft C++ exception: cv::Exception at memory location 0x0011ed78..的问题,如图:查了好久也不知道错在哪里,最后终于找到问题的原因了。原来是imread的路原创 2013-04-29 12:14:32 · 12587 阅读 · 22 评论 -
OpenCV中stitcher的简单应用
OpenCV中stitcher的简单应用,利用opencv中自带的sample稍微改编。#include #include #include "opencv2/highgui/highgui.hpp"#include "opencv2/stitching/stitcher.hpp"using namespace std;using namespace cv;vector img原创 2013-06-04 17:55:54 · 4954 阅读 · 2 评论 -
OpenCV中路径分割符的使用
在OpenCV的学习过程中经常要用到 imread,imwrite等函数。要读入非本文件夹的图片数据就要用到绝对路径,以及路径分隔符。我个人使用的是VS2010+OpenCV2.4版本。发现常见的路径分隔符有的不能用。我分别作了测试,结果如下表:分隔符是否能用/能\不能//能\\能特别是原创 2013-06-04 13:49:08 · 783 阅读 · 0 评论 -
OpenCV安装那些事儿(三)
Ⅴ.CodeBlocks+MinGW+OpenCV搭建开发环境(YES)这个必须可以。在C++ IDE上我选择了CodeBlocks,感觉Qt Creator太复杂了,而Eclipse是Javaer的最爱,咱玩C++的不去凑热闹。安装配置过程主要参考:http://opencv.willowgarage.com/wiki/CodeBlocks我采用的是:Configuring Co原创 2013-03-04 19:27:14 · 964 阅读 · 0 评论 -
opencv中直方图均衡化的小例子及详细注释
#include #include #include using namespace std;int main(){ /******************************************************************************************** *注意: * 必须是4个 *原创 2013-09-13 10:26:55 · 2092 阅读 · 0 评论 -
opencv用鼠标在窗口中画方形的程序
#include #include "cv.h"#include "highgui.h"void my_mouse_callback(int event, int x, int y, int flags, void* param);CvRect box;bool drawing_box = false;void draw_box(IplImage* img, CvRect rec原创 2013-09-12 14:22:19 · 1347 阅读 · 0 评论 -
OpenCV访问图像像素的方法收集以及自己实践中得体会
OpenCV访问图像像素, 数组元素等方法收集访问图像像素的一些方法。* Indirect access: (General, but inefficient, access to any type image)o For a single-channel byte image:IplImage* img = cvCreateImage( cvSize(640,480), IP原创 2013-09-18 10:10:12 · 1243 阅读 · 0 评论 -
图像的亮度变换和对比度变换
#include #include #include using namespace std;/**************************************目的:亮度变换(亮度增强或者亮度减弱)*原理:对每个通道的每个像素增加一个增益来达到亮度变换的效果*参数: srcImg 输入的源图像 dstImg 输出的图像,大小与源图像完全相原创 2013-09-18 15:59:10 · 1938 阅读 · 0 评论 -
图像处理结果
原图像1原图像2开运算闭运算形态学gradient运算原创 2013-10-05 12:51:15 · 888 阅读 · 0 评论 -
opencv 无法定位程序输入点__gxx_personality_v0于动态链接库libstdc++-6.dll上
这个问题经常出现在重装系统后,原来能用的opencv现在不能用了。问题出现的原因:是你用的gcc版本跟你编译opencv的版本不一样。是版本不一样造成的。解决的办法是:在mingw的bin目录下下载原来的libstdc++-6.dll替换现在的libstdc++-6.dll。原创 2013-09-09 20:00:25 · 9049 阅读 · 0 评论 -
基于opencv的双线性插值的实现(一)
#include #include #include using namespace std;float Abs(float f);void zoom(IplImage* src, IplImage* dst);int main() { // read an image IplImage* src = cvLoadImage("E://pic//view.jpg");原创 2013-09-22 16:11:39 · 2425 阅读 · 0 评论 -
基于opencv的双线性插值的实现(二)
上篇博客用实现了基于双线性插值算法的图像缩放,主要函数zoom中大量使用了指针。采用指针来读取图像像素,优点是执行速度快,缺点是代码不易阅读。本篇采用opencv库中自带的cvGet2D()和cvSet2D()函数来读写图像像素,虽然执行速度较慢,但代码阅读性强,简单明了。下面是主要函数zoom的实现,其他部分参考我的上一篇博客。void zoom(IplImage* src, Ipl原创 2013-09-22 19:27:34 · 4489 阅读 · 0 评论 -
OpenCV像素分布
关于OpenCV的像素分布,和windows位图的分布很不相同。它是从左上角开始的,画个图便于记忆。原创 2013-10-05 12:55:09 · 1665 阅读 · 0 评论 -
OpenCV中关于感兴趣的区域ROI
OpenCV中的cvSetImageROI,在新版本(2.0以上)依旧保留,不过新版中取消了IplImage格式,所以cvSetImageROI在新版本中基本没有什么用了。新版本中要设置感兴趣的区域,可以这样:Mat imageROI;imageROI = image(Rect(100,100,300,400));原创 2013-04-09 15:38:09 · 1519 阅读 · 0 评论 -
OpenCV中矩阵类型的个人理解
在应用OpeCV函数库的时候经常需要查看图像的类型(也就是矩阵的类型,因为在OpenCV中图像是以Mat保存的),如果直接打印image.type,如:image=imread("lina.jpg");cout会发现,打印出来的是数字,而不是我们在OpenCV中常见的CV_8UC3等类型。看起来很不方便和直观。原来CV_8UC3等内置类型是OpenCV定义的宏,它们都是int型。同样地原创 2013-04-08 14:34:47 · 2383 阅读 · 0 评论 -
OpenCV安装那些事儿(二)
Ⅳ.minGW+OpenCV2.0版本以上 (maybe)这个可以有。我就是这么想的。理论上,OpenCV是一个代码库,用minGW编译器编译一下应该就能用了,没有IDE就是原始点,应该不影响功能的使用。网上的教程大多是Qt Creator(或者Eclipse,或者 CodeBlocks)+minGW+OpenCV来搭建开发环境。本人比较懒惰,也对Qt等IDE兴趣不大,更不想乱安装一些不常用的原创 2013-03-04 19:16:47 · 872 阅读 · 0 评论 -
OpenCV2.4版本学习笔记(一)
core,基本的库highgui,包含输入输出函数新版本,用Mat存储图像imread(),读取图像namedwindow(),创建窗口imshow(),显示图像waitKey(),毫秒,为0表示永远等待cvtColor(),格式转换imwrite(),将图片写入硬盘IplImage, c的结构体,早期图片存储格式Mat结构的直接赋值都是软拷贝,如果想用硬拷原创 2013-03-06 08:43:13 · 950 阅读 · 0 评论 -
mean shift算法的基本原理
Mean Shift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束。给定d维空间Rd的n个样本点 ,i=1,…,n,在空间中任选一点x,那么Mean Shift向量的基本形式定义为:Sk是一个半径为h的高维球区域,满足以下关系的y点的集合,k表示在这n个样本点xi中,有k个点落入Sk区域中.转载 2013-03-13 13:56:33 · 10474 阅读 · 0 评论 -
《学习OpenCV》笔记(一)
cvLoadImage("greatwave.png",1);返回值是IplImage类型CvSize2D32f,是CvSize的变体类型,浮点型CvArr->CvMat->IplImage派生关系矩阵的创建方法:cvCreateMat(), cvCreateMatHeader(), cvCreateData(), cvCloneMat()ROI:感兴趣的区域。ROI的思想是,原创 2013-03-06 09:22:08 · 1226 阅读 · 0 评论 -
通过camshiftdemo.cpp来学习camshift算法
#include "opencv2/video/tracking.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include #include using namespace cv;using namespace std;Mat image;bool bac原创 2013-03-13 16:34:01 · 1889 阅读 · 0 评论 -
OpenCV最新版本中的CommandLineParser类
在camshiftdemo.cpp中出现了一个名叫CommandLineParser的类,不知道是干什么用的,查了一下文档才看明白。关于这个类的实现具体请看:root\opencv\modules\core\src\cmdparser.cpp(root是你安装opencv的位置)好像在opencv的c版本中,应该是opencv1.0以前,还没有出现CommandLineParser这个类,原创 2013-03-14 16:53:32 · 7134 阅读 · 6 评论 -
OpenCV中对mixChannels函数的理解
mixChannelsCopies specified channels from input arrays to the specified channels of output arrays.从输入中拷贝某通道到输出中特定的通道。C++: void mixChannels(const Mat*src, size_t nsrcs, Mat* dst, size_t ndsts, co原创 2013-03-15 10:18:06 · 8296 阅读 · 2 评论 -
OpenCV中的calcHist函数解释
calcHistCalculates a histogram of a set of arrays.计算阵列的直方图。C++: void calcHist(const Mat*images, int nimages, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize原创 2013-03-15 11:23:00 · 3877 阅读 · 0 评论 -
OpenCV中关于SetMouseCallback的解释
SetMouseCallbackSets mouse handler for the specified window将鼠标事件与具体窗口绑定的函数。C++: void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata=0)Parameterswinname– Window原创 2013-03-19 15:44:52 · 4674 阅读 · 0 评论 -
OpenCV2.4版本中calcHist()的用法示例
#include #include #include using namespace cv;int main( int argc, char** argv ){ Mat src, hsv; src=imread("f.jpg"); cvtColor(src, hsv, CV_BGR2HSV); // Quantize the hue to 30 level原创 2013-03-19 21:04:35 · 1365 阅读 · 0 评论 -
OpenCV中的TermCriteria模板类
TermCriteria模板类,取代了之前的CvTermCriteria,这个类是作为迭代算法的终止条件的,这个类在参考手册里介绍的很简单,我查了些资料,这里介绍一下。该类变量需要3个参数,一个是类型,第二个参数为迭代的最大次数,最后一个是特定的阈值。类型有CV_TERMCRIT_ITER、CV_TERMCRIT_EPS、CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,分别代表着转载 2013-03-20 09:34:42 · 9239 阅读 · 0 评论 -
OpeCV中type与depth的区别
image.type()与image.depth()的区别。type返回的是a metrix element type,即元素的类型,如:CV_8UC3;depth()返回的是the depth of a matrix element,即矩阵的深度,如CV_8UC。区别在于depth没有通道的概念。要注意一点是:C++: Mat::Mat(Sizesize, int typ原创 2013-03-19 18:28:44 · 1326 阅读 · 0 评论 -
OpenCV2.4版本的camshiftdemo.cpp的详细注释
#include "opencv2/video/tracking.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include #include using namespace cv;using namespace std;Mat image;bool bac原创 2013-03-20 14:34:49 · 3002 阅读 · 3 评论 -
Ubuntu13.04安装OpenCV2.4.5
下面是复制自官方的安装文档,我在ubuntu13.04上编译安装OpenCV2.4.5安装成功。先到opencv论坛上下载linux版本的源码。然后按照下面的提示安装就可以了。刚开始的时候我没有按照下面的方法安装,而是直接安装cmake-qt后直接编译安装,结果不成功。第二次严格按照下面的安装步骤成功了,并且配置好了codeblocks IDE。OpenCV install原创 2013-10-30 09:24:14 · 1533 阅读 · 0 评论