
Opencv学习
文章平均质量分 84
lihuajie1003
DSP学习,Python,图像处理opencv,嵌入式图像处理(ARM+图像处理)
展开
-
《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS
时间 2014-06-06 21:01:15 优快云博客原文 http://blog.youkuaiyun.com/zhurui_idea/article/details/28891137主题 矩阵矩阵和图像的操作 (1)cvSetIdentity函数其结构void cvSetIdentity(//将矩阵行与列相等的元素置为1,其余元素置为0 Cv转载 2015-10-30 19:53:17 · 1131 阅读 · 0 评论 -
CvMat 矩阵的用法和简单程序
一:CvMat* cvInitMatHeader( CvMat* mat, int rows, int cols, int type,void* data=NULL, int step=CV_AUTOSTEP );mat 指针指向要被初始化的矩阵头.rows 矩阵的行数.cols 矩阵的列数.type 矩阵元素类型.data 可选的,将指向数据指针分配给矩阵头.step原创 2015-03-19 15:30:53 · 1697 阅读 · 0 评论 -
int main(int argc, char *argv[])中argc和argv的解释
#include #include #include #include #include #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib")int main(int argc, char *argv[]){原创 2015-10-29 15:22:14 · 503 阅读 · 0 评论 -
《学习opencv》笔记——矩阵和图像操作——cvSum,cvSVD,cvSVBkSb,cvTrace,cvTranspose,cvXor,cvXorS and...
矩阵和图像的操作(1)cvSum函数其结构CvScalar cvSum(//计算arr各通道所有像素总和 CvArr* arr//目标矩阵);实例代码#include #include #include #include using namespace std;int main() { IplImage *src1,*dst1,*ds转载 2015-06-15 14:38:11 · 1614 阅读 · 0 评论 -
角点检测算法
本次范例讲的都是检测角点的算法,在这里我们会讲到,harris角点检测,Shi-Tomasi角点检测,FAST角点检测,尺度不变surf检测,尺度不变sift检测,特征点的描述。由于是算法问题,相对来说会比较复杂,而且都是一些比较经典的算法,如果只是纯粹的想要用算法来实现一些功能,那么只要调用OpenCV几个简单的函数就可以了,但是如果想学习一下理论知识,为以后自己的研究有所帮助,而且想理解函数的转载 2015-06-29 14:40:35 · 4804 阅读 · 0 评论 -
opencv下的Garbor滤波
图1 不同中心震荡频率下在Gabor函数#include #include #include #include #include using namespace cv;using namespace std;const double PI = 3.14159265;// ref: http://blog.youkuaiyun.com/watkinsong/article/detail转载 2015-06-26 12:50:05 · 1084 阅读 · 0 评论 -
图像像素值的反转
图像反转:灰度图像范围为[0,L-1]的图像反转,表达式s=L-1-r;用这种方式倒转图像的强度,可产生图像反转的对等图像。# include #include #include #include "cv.h"#include "highgui.h"#pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib")原创 2015-06-19 14:15:45 · 2988 阅读 · 0 评论 -
图像的通道分割和融合
#include "highgui.h"#include "cv.h"#pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") int main( ){ IplImage *src = cvLoadImage( "0.jp原创 2014-12-17 08:17:16 · 1459 阅读 · 0 评论 -
opencv中值滤波的源代码
#include "stdio.h"#include "cv.h"#include "highgui.h"#pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib")uchar FilterMid(IplImage原创 2014-11-08 09:19:57 · 2460 阅读 · 0 评论 -
鼠标画矩形
#include #include #include #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") #define true 1#define false 0 void my_mouse_原创 2015-05-08 22:17:32 · 832 阅读 · 0 评论 -
gaussian滤波 源码
#include "highgui.h" #include "cv.h" #include "string.h"#pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") //高斯滤波函数,在ope原创 2014-11-07 23:10:34 · 626 阅读 · 0 评论 -
opencv画直线圆椭圆矩形
opencv画直线圆椭圆矩形原创 2015-04-11 23:59:14 · 1111 阅读 · 0 评论 -
两幅图像整合到一副图像上
extern IplImage* stack_imgs( IplImage* img1, IplImage* img2 ) { IplImage* stacked = cvCreateImage( cvSize( MAX(img1->width, img2->width), img1->hei转载 2015-03-12 10:12:39 · 906 阅读 · 0 评论 -
opencv对电脑摄像头采集和边缘检测
视频采集和边缘检测原创 2015-11-19 13:23:39 · 838 阅读 · 0 评论 -
OpenCV将彩色视频转换为灰度视频并保存
#include "cxcore.h"#include "cvcam.h"#include "windows.h"#include "cv.h"#include "highgui.h"#include "stdio.h"#pragma comment(lib, "cv.lib")#pragma comment(lib, "cxcore.lib")#pragma comment(l原创 2015-11-19 14:21:09 · 5118 阅读 · 0 评论 -
opencv改变图像的尺寸
首先初始目标图像尺寸:方法一:IplImage* dst= cvCreateImage( cvSize((size.width & -2)/2, (size.height & -2)/2), 8, 1 );分析:size.width & -2----size.width和-2做‘与’运算从补码算起,我们知道计算机内存里面负数是以补码形式存储并参与运算的,那-2的补码是转载 2015-11-26 09:26:30 · 1012 阅读 · 0 评论 -
opencv cv::Mat的用法
1、使用准备:using namespace cv;2、Mat的声明Mat m=Mat(rows, cols, type);Mat m=Mat(Size(width,height), type);Mat A=Mat(3,4,CV_32FC1);Mat B=Mat(4,3,CV_32FC1);3、Mat赋值vectorv;//suppose it is alread转载 2017-03-10 13:48:38 · 2784 阅读 · 0 评论 -
harris角点检测
原理:Harris角点检测最直观的解释是:在任意两个相互垂直的方向上,都有较大变化的点。---harris在A combined corner and edge detector这篇文章中提出来的。在moravec角点检测中,w(x,y)的取值是二元的,在窗口内部就取值为1,在窗口外部就取值为0,在harris的角点检测中,使用的是高斯窗口,所以w(x,y)表示转载 2015-03-13 09:38:42 · 989 阅读 · 0 评论 -
IplImage *,Mat,QImage之间的转换
IplImage QImage Mat 格式互转//QImage->IplImage *static IplImage *ConvertToIplImage(const QImage &img){ int nChannel=0; if(img.format()==QImage::Format_RGB888)nChannel=3; if(img.format()==QI原创 2016-08-02 16:46:27 · 1357 阅读 · 0 评论 -
opencv 中对矩阵的排序例子
reshape有两个参数:其中,参数:cn为新的通道数,如果cn = 0,表示通道数不会改变。参数rows为新的行数,如果rows = 0,表示行数不会改变。注意:新的行*列必须与原来的行*列相等。原创 2016-11-10 16:15:21 · 2804 阅读 · 0 评论 -
robert 边缘检测
#include "cv.h"#include "highgui.h"#include #include "stdio.h"#pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") void robert原创 2014-11-01 15:32:41 · 990 阅读 · 0 评论 -
opencv摄像头采集图像彩色图转换成灰度图
#include "cxcore.h"#include "cvcam.h"#include "windows.h"#include "cv.h"#include "highgui.h"#include "stdio.h"#pragma comment(lib, "cv.lib")#pragma comment(lib, "cxcore.lib")#pragma comment(l原创 2015-11-19 14:12:11 · 4132 阅读 · 0 评论 -
prewitt和sobel算子 边缘检测
#include "cv.h"#include "highgui.h"#include #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") void prewitt(IplImage *src,IplIm原创 2014-11-07 22:04:18 · 1997 阅读 · 0 评论 -
OPENCV检测矩形并计算其中心
#include "cv.h" #include "highgui.h" #include #include #include #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib")原创 2014-10-27 18:28:46 · 7103 阅读 · 0 评论 -
OpenCV访问Mat中每个像素的值
写的很好,我就转来了,不错。方法零:.ptr和[]操作符Mat最直接的访问方法是通过.ptr[cpp] view plain copy // using .ptr and [] void colorReduce0(cv::Mat &image, int div=64) { int nr= image.rows;转载 2016-08-11 11:22:21 · 1134 阅读 · 0 评论 -
图像金字塔
原理当我们需要将图像转换到另一个尺寸的时候, 有两种可能:放大 图像 或者缩小 图像。尽管OpenCV 几何变换 部分提供了一个真正意义上的图像缩放函数(cvResize),不过在本篇我们首先学习一下使用图像金字塔 来做图像缩放, 图像金字塔是视觉运用中广泛采用的一项技术。图像金字塔一个图像金字塔是一系列图像的集合 - 所有图像来源于同一张原始图原创 2015-05-08 16:30:26 · 892 阅读 · 0 评论 -
C语言动态分配数组
如何动态的定义及使用数组呢?记得一般用数组的时候都是先指定大小的,后来又问了一位教C++的老师,他告诉我在C++里用new可以做到,一直不用C++,所以也不明白。今天在逛论坛时终于找到了C语言中的用法(看原贴):一维数组: int *a; int N; scanf("%d", &N); a = (int *) malloc(N * siz转载 2016-06-22 13:45:46 · 5467 阅读 · 0 评论 -
SIFT特征提取中用差分代替求偏导
1. 一阶差分: 2. 二阶偏导数的推导和近似: 3. 上式以点(i+1,j)为中心,用i代换i+1可得以(i,j)为中心的二阶偏导数则有: 4. 同理: 5. 进而可推导: 6. 这样我们就可以很好的运用其他的一阶偏导的定义,如SIFT特征OpenCV实现版本中的一阶以及二阶偏原创 2014-11-22 10:31:46 · 1724 阅读 · 0 评论 -
VS2010(MFC)+opencv2.4.9
(一)新建项目菜单中 文件-新建-项目(二)新建MFC应用程序(三)基于对话框选择基于对话框的,只需改下下面的其它,默认即可(四)opencv的配置如OpenCV 2.4.9 +VS2010 开发环境配置(二)所示(五)界面设置打开工具箱,找到button和picture control控件修改button中的属性和右击按原创 2016-01-29 10:54:29 · 1292 阅读 · 0 评论 -
VC6.0+opencv1.0配置
1、安装OpenCV注意安装路径可以不选C盘,注意下面的路径都要改;从http://www.opencv.org.cn 下载OpenCV安装程序。假如要将OpenCV安装到C:\ProgramFiles\OpenCV。(下面附图为OpenCV 1.0rc1的安装界面,OpenCV 1.0安装界面与此基本一致。)在安装时选择"将\OpenCV\bin加入系统变量"(Add\OpenCV\原创 2016-01-13 11:35:49 · 4623 阅读 · 0 评论 -
OpenCV 2.4.9 +VS2010 开发环境配置(一)
OpenCV 2.4.9 +VS2010 开发环境配置OpenCV的全称是:Open Source ComputerVision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像原创 2016-01-06 16:47:51 · 1928 阅读 · 0 评论 -
OpenCV 2.4.9 +VS2010 开发环境配置(二)
为了不用每次都向OpenCV 2.4.9 +VS2010 开发环境(一)http://blog.youkuaiyun.com/lihuajie1003/article/details/50470039点击打开链接中那样每建一个工程都配置一次,我们用另一种方法。(1)在我们新建好的工程中(WIN32控制台应用程序(空白)),添加好VC++源程序,然后点击视图->属性管理器->Microsoft.原创 2016-01-25 09:35:42 · 565 阅读 · 0 评论 -
创建Mat 对象
教程 读取、修改、保存图像 已经讲解了如何使用函数 imwrite() 将一个矩阵写入图像文件中。但是为了debug,更加方便的方式是看实际值。为此,你可以通过 Mat 的运算符 Mat 不但是一个很赞的图像容器类,它同时也是一个通用的矩阵类,所以可以用来创建和操作多维矩阵。创建一个Mat对象有多种方法:矩阵。创建一个Mat对象有多种方法:Mat() 构造函数转载 2015-03-19 22:51:21 · 601 阅读 · 0 评论 -
IplImage数据结构及其相关函数
IplImage 结构解读:typedef struct _IplImage{int nSize; /* IplImage大小 */int ID; /* 版本 (=0)*/int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通原创 2015-03-19 10:46:27 · 1028 阅读 · 0 评论 -
otsu阈值处理
#include #include #include #include #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") int Otsu(IplImage* src); i原创 2014-11-05 16:07:10 · 1039 阅读 · 0 评论 -
【OpenCV】有关内存释放的一些问题
转载请注明出处:http://blog.youkuaiyun.com/xiaowei_cqu/article/details/7586847前一天把系统整个重写了一遍,脉络清晰了很多,也终于解决了以前很多崩溃,异常退出的问题。这里小小总结一下自己遇到的麻烦。1、内存泄露内存泄露是说没有释放已经不能使用的内存,这里一般指堆的内存才需要显示的释放。比如用malloc,calloc,real转载 2015-01-31 08:56:06 · 706 阅读 · 0 评论 -
CvMat操作
分配释放矩阵空间综述:OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.OpenCV将向量作为1维矩阵处理.矩阵按行存储,每行有4字节的校整.分配矩阵空间:CvMat* cvCreateMat(int rows, int cols, int type); type: 矩阵元素类型. 格式为CV_(S转载 2015-01-29 22:56:18 · 557 阅读 · 0 评论 -
Houghcircle
#include #include#include"stdio.h" #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") int main() { IplImage* src =原创 2014-11-07 21:43:39 · 706 阅读 · 0 评论 -
双目测距与三维重建的OpenCV实现问题集锦(一)双目定标与双目校正
双目测距的基本原理如上图所示,双目测距主要是利用了目标点在左右两幅视图上成像的横向坐标直接存在的差异(即视差 )与目标点到成像平面的距离Z存在着反比例的关系:Z=fT/d。“@scyscyao :在OpenCV中,f的量纲是像素点,T的量纲由定标板棋盘格的实际尺寸和用户输入值确定,一般是以毫米为单位(当然为了精度提高也可以设置为0.1毫米量级),d=xl-xr的量纲也是像素点。因此转载 2014-11-29 12:36:30 · 2464 阅读 · 0 评论 -
双目测距与三维重建的OpenCV实现问题集锦(二)双目定标与双目校正
三、双目定标和双目校正双目摄像头定标不仅要得出每个摄像头的内部参数,还需要通过标定来测量两个摄像头之间的相对位置(即右摄像头相对于左摄像头的三维平移 t 和旋转 R 参数)。图6要计算目标点在左右两个视图上形成的视差,首先要把该点在左右视图上两个对应的像点匹配起来。然而,在二维空间上匹配对应点是非常耗时的,为了减少匹配搜索范围,我们可以利用极线约束使得对应点的匹配由转载 2014-11-29 12:42:11 · 1482 阅读 · 0 评论