
OPENCV
文章平均质量分 64
xiaojidan2011
兴趣、悟性、勤奋、坚持!
展开
-
Install OpenCV 2.4.9 in Ubuntu 14.04, 13.10
OpenCV is the most popular and advanced code library for Computer Vision related applications today, spanning from many very basic tasks (capture and pre-processing of image data) to high-level原创 2014-10-16 19:35:51 · 9825 阅读 · 0 评论 -
opencv Mat() 构造函数
Mat 不但是一个很赞的图像容器类,它同时也是一个通用的矩阵类,所以可以用来创建和操作多维矩阵。创建一个Mat对象有多种方法 Mat M(2,2,CV_8UC3, Scalar(0,0,255)); cout "M = " endl " " M endl endl; 对于二维多通道图像,首先要定义其尺寸,即原创 2012-11-06 14:30:45 · 14775 阅读 · 0 评论 -
如何创建一幅白色或黑色图
IplImage *dst=cvCreateImage(cvSize(400,300),8,1); cvZero(dst); for (int i=0;iheight;i++) for (int j=0;jwidth;j++) { cvSet2D(dst,i,j,cvScalar(0)); //白色0改成255 } cvShowImage("qq",dst); cvW原创 2012-11-05 14:33:18 · 5262 阅读 · 0 评论 -
如何创建一幅白色或黑色图像
IplImage *dst=cvCreateImage(cvSize(400,300),8,1); cvZero(dst); for (int i=0;iheight;i++) for (int j=0;jwidth;j++) { cvSet2D(dst,i,j,cvScalar(0)); //白色0改成255 } cvShowImage("qq",dst); cvW原创 2012-11-05 14:31:48 · 270 阅读 · 0 评论 -
opencv 利用鼠标读取图片上的像素值
方法:通过鼠标点击,获取图片的像素值。很简单,最近看视频的时候想到的,网上也参考了些。好了 不说啦 上代码了。。。 Code:void mouseHandler(int event, int x,int y ,int flags,void *p){ IplImage *img0, *img1; img0=(IplImage*)p; img1=cvCloneImage(img0)原创 2012-10-24 10:30:57 · 131 阅读 · 0 评论 -
opencv利用鼠标获取图像的像素值
简单的点击鼠标可以查找图像的像素值,方法很简单。code:void mouseHandler(int event, int x,int y ,int flags,void *p){ IplImage *img0, *img1; img0=(IplImage*)p; img1=cvCloneImage(img0); CvFont font; uchar *ptr; char l原创 2012-10-24 10:52:26 · 5146 阅读 · 2 评论 -
opencv 图象角点检测
Code:#include2using namespace cv;using namespace std;#include #include //by Huang, Haiqiao 5 Dec. 2009int main(int argc, char** argv){ cout << "Corner Detection OpenCV!"<<endl; char*原创 2012-10-22 21:18:46 · 1694 阅读 · 0 评论 -
opencv 保存视频VideoWrite
尽早过来学习了一下opencv中如何写入视频,顿时发现Opencv太强大了 !!!!你可能已经不满足于读取视频,还想要将你产生的一系列结果保存到一个新建的视频文件中。使用OpenCV中的 VideoWriter 类就可以简单的完成创建视频的工作。在接下来的教程中,我们将告诉你:如何用OpenCV创建一个视频文件用OpenCV能创建什么样的视频文件如何释放视频文件当中的某个颜色通原创 2012-10-13 09:57:05 · 28217 阅读 · 0 评论 -
编译opencv2.1静态库
环境: VS2008 + WIN7 + opencv2.1 + cmake2.8 背景:自己编写的一个工具类,用到了opencv库,需要编译成静态库以便于其他应用程序链接。 网上有的教程中写的在vs2010下安装opencv2.1时用到了TBB库,而我在编译链接自己的程序后需要用到tbb.dll,我的目的是做一个独立的应用程序,不需要携带其他第三方库,经过自己的摸索,终于找到了编转载 2012-10-16 09:47:34 · 1149 阅读 · 0 评论 -
opencv 压缩程序格式解析
Microsoft RLE这是微软开发为AVI格式开发的一种编码,文件扩展名为AVI,使用了RLE压缩算法,这是一种无损的压缩算法,我们常见的tga格式的图像文件就使用了RLE算法。 什么是RLE算法呢?这是一种很简单的算法,举一个很简单的例子: 假设一个图像的像素色彩值是这样排列的:红红红红红红红红红红红红蓝蓝蓝蓝蓝蓝绿绿绿绿,经过RLE压缩后就成为了:红12蓝6绿4。这样既保证了压缩的原创 2012-10-13 10:10:15 · 2905 阅读 · 0 评论 -
分离多通道图像RGB的值 !!!!
昨晚无聊,就想想把一幅24位的彩色图像,分离成RGB三个通道,分别显示的,但是吧,网上参考了许多的例子代码,都讲的不够详细,没有合自己心意的,所以决定自己写一下,没想到一个无聊的想法,花费了我一个晚上+一个上午的时间,感觉有点不值的呀。现在分享出来,让大家瞧瞧,免的走弯路。 参考了网友小魏的博客,但觉得她说的不怎么清楚的,不大利于理解的,索性自己写一下。 本文使用了opencv+原创 2012-09-14 10:25:27 · 6919 阅读 · 5 评论 -
Opnecv如何读取图像倒序
昨晚无意看到stackoverflow上一个人提问,说如何读取图像倒序,我心血来潮,就想了下,写的很搓,很简单的。思路:从图像的最后一帧开始读取, 依次向前一帧递减,直当前帧为0.code :// Author W.Qi// Data 16/4/2013// How to read the image in reverse.#if !defined原创 2013-04-16 10:15:22 · 1597 阅读 · 0 评论 -
Opencv on Ubuntu (from Ubuntu)
官网关于如何在ubuntu上安装opencv原创 2014-10-14 21:32:47 · 1420 阅读 · 0 评论 -
Opencv for Ubuntu14.04
Opencv for Ubuntu14.04原创 2014-09-11 13:36:08 · 11666 阅读 · 1 评论 -
Opencv 兼容OPENCV1.0
const char* image="1.jpg"; Ptr img=cvLoadImage(image); // 转换Mat IplImage. if (img.empty()) { return -1; } Mat img1(img);Mat img_yuv;cvtColor(img1,img_yuv,CV_BGR2YCrCb);vector plan原创 2013-08-26 19:41:46 · 1273 阅读 · 0 评论 -
OpenCV在多线程下不能读取AVI视频新的解决办法
之前OpenCV在多线程下读取AVI视频不奏效的问题解决了好久,后来不得已换成了AVI stream来解码。本以为是解决了,在我的笔记本上和台式机上都正常的运行,可是到了别人的XP系统中又不能运行了,这样才真正的涉及到本质问题,一样是不行的,为什么呢?查了很久,之前AVIFILEOPEN这个函数的返回值始终是-2147221008,可是都没有找到本质原因,后来才发现,要把这个代码换成16进制就可以转载 2013-08-14 11:11:32 · 1716 阅读 · 0 评论 -
OpenCV中cvSplit图像的通道分离
分离图像通道采用函数cvSplit。 函数原型:void cvSplit(const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3)分离出来的顺序是逆序的,这个要注意。[cpp] view plaincopyprint?cvSplit(pImg,bImg,gI转载 2013-08-13 10:58:50 · 6888 阅读 · 0 评论 -
Opencv Write Image & Video to File
Write Image to FileIn the following example, a yellow image is created and written into a file. Let's see how to do it with OpenCV.Mat img(100,100,CV_16UC3,Scalar(0,0,100)); if(img.empty()) {原创 2013-08-13 08:31:34 · 6019 阅读 · 0 评论 -
Opencv 鼠标点击获取视频下一帧
今晚偶来兴致, 想通过点击鼠标, 视频显示下一帧图像。struct U{ VideoCapture cap; Mat m;};void mouse(int k, int x, int y, int s, void *p){ U * u = (U*)p; if ( k && s ) u->cap.read(u->m);}int ma原创 2013-06-19 22:10:32 · 1973 阅读 · 2 评论 -
Opencv 读取多幅图像,并且每3秒显示
今天这篇文章和以前关于读取多幅图像的代码有点区别,本文得方法是摘自大牛的主页的代码, 先将图片的名字写入到txt中,然后通过读取txt中的数据,从而达到读取文件夹的图片。个人觉得很有意思,就和大家分享下。。详见代码:#define IMAGE_LIST_FILE "inputimage.txt"int main(){ FILE *fp; char imagepath[200];原创 2013-05-29 10:47:57 · 5791 阅读 · 3 评论 -
opencv中关于reshape, repeat初步认识
网上查阅得到:Mat Mat::reshape(int cn, int rows=0) const opencv手册上的解释为:Changes the shape and/or the number of channels of a 2D matrix without copying the data.参数cn:新的通道数;如果cn值为0表示变换前后通道数不变参数rows:新的行原创 2013-04-18 10:52:52 · 13191 阅读 · 2 评论 -
opencv 反向投影
原理:反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式。所谓反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征。假设你已经通过下图得到一个肤色直方图(Hue-Saturation), 旁边的直方图就是 模型直方图 ( 代表手掌的皮肤色调).你可以通过掩码操作来抓取手掌所在区域的直方图:我们要做的就是使用 模型直方图 (代表手掌的皮肤色调)原创 2012-10-11 10:00:20 · 4558 阅读 · 2 评论 -
opencv OpenCV访问图像像素, 数组元素等方法收集
IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);CvScalar s;s=cvGet2D(img,i,j); // get the (i,j) pixel valueprintf("intensity=%f\n",s.val[0]);s.val[0]=111;cvSet2D(img,i,j,s); // set th原创 2012-10-08 21:13:21 · 3120 阅读 · 0 评论 -
opencv 如何显示多幅图像
主函数是用于读取摄像头,并在视频上写时间字幕: CvCapture* capture; capture = cvCaptureFromCAM(0); IplImage* frame; cvNamedWindow("video",1); cvResizeWindow("video",750,750); CvFont t原创 2012-10-09 10:38:33 · 3813 阅读 · 0 评论 -
opencv 如何读取摄像头
关于opencv 如何读取摄像头的操作,代码很简单,进行了简单的canny处理; VideoCapture cap(0); if(!cap.isOpened()) return -1; Mat edges; for(;;) { Mat frame; cap>>frame; cvtColor(frame,edges, CV_BGR2GRAY); GaussianB原创 2012-09-27 16:14:39 · 8449 阅读 · 0 评论 -
opencv 图像融合
本文通过可见光和红外图像,访问颜色表,恢复成彩色图片。 首先可见光和红外图像是要经过配准的,然后仪可见光图像的像素值为y坐标,红外图像的像素值为x坐标来访问颜色表: void readcolormap(IplImage *src2, IplImage *src1){ //src1 src2 分离通道处理 IplImage *search=cvLoadI原创 2012-09-28 10:27:30 · 6463 阅读 · 5 评论 -
opencv 雕刻操作
通过求一个像素和它左上方像素之间的差值并加上一个常数的方法生成"浮雕"效 果的灰度图像,"雕刻"图像与之相反,它是通过取一个像素和它右下方的像素之间的差值并加上一个常数,这里我也取128,经过这样处理,就可以得到"雕 刻"图像,这时候图像的前景凹陷进背景之中。好了上代码啦:int main(){ IplImage *org=cvLoadImage("e:\\kankan\\corner原创 2012-09-28 10:10:10 · 1111 阅读 · 0 评论 -
opencv 浮雕操作
浮雕是雕塑与绘画结合的产物,用压缩的办法来处理对象,靠透视等因素来表现三维空间,并只供一面或两面观看。好了 上代码 应该很清楚了:int main(){ IplImage *org=cvLoadImage("e:\\kankan\\corner.png",1); IplImage *image=cvCloneImage(org); int width=image->width;原创 2012-09-28 10:06:31 · 1806 阅读 · 0 评论 -
vs2010+opencv2.3.1配置全部!!!!!!!精~~~~
Visual Studio 2010 (VS2010) 中配置OpenCV 2.3.1开发环境简单说明一下E:\opencv目录下各个子文件夹的作用:3rdparty 包含第三方库的实现代码,如zlib,ffmpeg,libjpeg等android android开发相关文件build 用于编译程序的lib文件和运行exe的dll文件data 数据文件,如机器学习输出的xm原创 2012-08-29 19:03:42 · 9734 阅读 · 2 评论 -
c++ opencv 分离r,g,b三通道
今天学习了c++ opencv 分离通道的方法 ,操作很奇怪的... Mat bgr_res[3]; Mat bgr[3]; for( int j = 0 ; j < 3; j++) { split(src, bgr); for (int i=0; i<3; ++i) { if (i != j ) bgr[i] = Mat::zeros(src.原创 2012-09-26 22:34:11 · 9497 阅读 · 0 评论 -
opencv 灰度直方图
#include #include #pragma comment( lib, "cv.lib" )#pragma comment( lib, "cxcore.lib" )#pragma comment( lib, "highgui.lib" )int main(){ IplImage* src=cvLoadImage("lena.jpg",0); int width=src->w转载 2012-09-10 21:49:59 · 1490 阅读 · 0 评论 -
opencv 彩色图像直方图
#include #include "cv.h"int main(){ IplImage *src=cvLoadImage("e:\\kankan\\baihe.jpg"); IplImage *r=cvCreateImage(cvGetSize(src), 8, 1); IplImage *b=cvCreateImage(cvGetSize(src), 8, 1); IplI原创 2012-09-10 21:42:07 · 1825 阅读 · 0 评论 -
直方图均衡化
#include#include using namespace cv;using namespace std;int main(){ IplImage * image= cvLoadImage("e:\\kankan\\1.bmp",1); IplImage* eqlimage=cvCreateImage(cvGetSize(image),image->depth,3)原创 2012-09-06 22:26:57 · 1186 阅读 · 0 评论 -
opencv 关于cvSet2D画图!!!!!!!!画全0和全255像素的直线!!!!!!
opencv中 cvSet2D 给某个点赋值, CVAPI(void)cvSet2D( CvArr* arr,int idx0, int idx1, CvScalar value ); idx0代表是的行,即高度,对应于我们平常坐标系的y, idx1代表的是列,即宽度。。千万要注意坐标的顺序。下面我想贴出代码 大家可以看看 ,这原创 2012-09-11 19:12:51 · 12481 阅读 · 2 评论 -
opencv 仿射变换
void main( ){ IplImage *Img_old=cvLoadImage("e:\\kankan\\corner.png"); IplImage* Img_tmp =cvCloneImage( Img_old); int angle=90; float m[6]; CvMat M = cvMat( 2, 3, CV_32F, m ); CvP原创 2012-09-27 20:56:59 · 4369 阅读 · 2 评论 -
opencv 如何在图像输入字幕
昨晚在床上看 opencv 看到了如何在图像输入字幕,其实前段时间我已经学过了,只是没认真琢磨,昨晚看了,尽早赶紧写了一下。哼~~~不错! 代码如下: IplImage *img=cvCreateImage(cvSize(640,480),8,1); CvFont font; double hScale=1.0; double vScale=1.0;原创 2012-10-09 09:36:24 · 3263 阅读 · 0 评论 -
opencv Scalar
今早看opencv manual,偶然发现一个有趣的函数Scalar,以前给图像赋颜色赋值时候也是用到这个函数。今天这个函数还可以这样使用,真是不看不知道,一看很霸气!!Mat M(7,7,CV_32FC2,Scalar(1,3)); Mat M(7,7,CV_32FC1,Scalar(1,3)); Mat M(7,7,CV_32FC3,Scalar(1,3))原创 2012-10-07 09:31:08 · 11528 阅读 · 2 评论 -
opencv 阈值处理
#include int main(void){ IplImage *src_image = 0; IplImage *dst_image = 0; IplImage *dst_image_adaptive = 0; int c; int threshold_type; int thresh_val; int max_val; int adap原创 2012-09-15 12:55:54 · 1896 阅读 · 0 评论 -
图像不变矩
#include#includeusing namespace std;using namespace cv;/*===============================================// 功能:不变矩匹配 时间:3/28/2011 SkySeraph HQU 参考: //===========================================转载 2012-09-13 19:30:49 · 2567 阅读 · 0 评论 -
opencv 保存灰度图像的像素值
#include #include #includeusing namespace std;using namespace cv; int main(int argc, char* argv[]) { IplImage* img = cvLoadImage("e:\\kankan\\baihe.jpg",0); CvScalar p; ofs原创 2012-09-13 19:46:51 · 6259 阅读 · 2 评论