opencv入门
虚极守静
虚怀若谷,不苟言笑
展开
-
opencv:图像的显示
#include "highgui.h"int main(int argc,char** argv){ //载入图片 IplImage* img = cvLoadImage("test.jpg"); //创建窗口 cvNameWindow("Example1",CV_WINDOW_AUTOSIZE); //显示图片 cvShowImage原创 2017-02-07 22:00:50 · 137 阅读 · 0 评论 -
opencv:矩阵CvMat
一、CvMat结构体typedef struct CvMat{ int type; int step; int* refcount; int hdr_refcount; union { uchar* ptr; short* s; int* i; float* fl;原创 2017-02-07 22:17:34 · 177 阅读 · 0 评论 -
opencv:视频处理
一、读写视频CvCapture* cvCreateFileCapture(const char* filename);CvCapture* cvCreateCameraCapture(int index);(1)读视频 int cvGrabFrame(CvCapture* capture);IplImage* cvRetrieveFrame(CvCapture* capture);IplIma原创 2017-02-07 22:28:41 · 238 阅读 · 0 评论 -
opencv:平滑处理
void cvSmooth(const CvArr* src,CvArr* dst,int smoothtype = CV_GAUSSIAN,int param1 = 3,int param2 = 0)原创 2017-02-11 12:59:19 · 187 阅读 · 0 评论 -
opencv:图像形态学
一、膨胀void cvErode(IplImage* src,IplImage* dst,IplConvkernel* B = NULL,int iterations = 1);二、腐蚀void cvDilate(IplImage* src,IplImage* dst,IplConvKernel* B = NULL,int iterations = 1);三、自定义核IplConvKernel* c原创 2017-02-11 13:03:03 · 191 阅读 · 0 评论 -
opencv:漫水填充算法
一、函数原型void cvFloodFill(IplImage* img,CvPoint seedPoint,CvScalar loDiff = cvScalarAll(0),CvScalar upDiff = cvScalarAll(0),CvConnectedComp* comp = NULL,int flags = 4,CvArr* mask = NULL);原创 2017-02-11 13:03:52 · 299 阅读 · 0 评论 -
opencv:图像尺寸调整
一、函数原型void cvResize(const CvArr* src,CvArr* dst,int interpolation = CV_INTER_LINEAR);插值方法CV_INTER_NN 最近邻插值CV_INTER_LINEAR 线性插值 CV_INTER_AREA 区域插值CV_INTER_CUBIC 三次样条插值原创 2017-02-11 13:25:54 · 392 阅读 · 0 评论 -
opencv:图像金字塔
一、采样void cvPyrDown(IplImage* src,IplImage* dst,IplFilter filter = CV_GAUSSIAN_5x5);void cvPytUp(IplImage* src,IplImage* dst,IplFilter filter = CV_GAUSSIAN_5x5);二、分割void cvPrSegmentation(IplImage* src,原创 2017-02-11 13:26:43 · 273 阅读 · 0 评论 -
opencv:阈值化
一、函数原型double cvThreshold(CvArr* src,CvArr* dst,double threshold,double max_value,int threshold_type);二、cvThreshold()中阈值类型选项和对应的操作 阈值类型 1·CV_THRESH_BINARY dst = (src > T) ? M : 0 2·CV_THRESH原创 2017-02-11 13:28:59 · 237 阅读 · 0 评论 -
opencv:图像变换
一、卷积void cvFilter2D(const CvArr* src,CvArr* dst,const CvMat* kernel);//扩大图像的边界void cvCopyMakeBorder(const CvArr* src,CvArr* dst,CvPoint offset,int bordertype,CvScalar value = cvScalarAll(0));二、梯度和Sob原创 2017-02-11 13:33:04 · 380 阅读 · 0 评论 -
opencv:直方图与匹配
一、直方图 1·直方图的基本结构typedef struct CvHistogram{ int type; CvArr* bins; float thresh[CV_MAX_DIM][2]; float** thresh2; CvMatND mat;} CvHistogram;2.创建一个直方图 CvHistogram* cvCreateHist原创 2017-02-11 13:34:32 · 304 阅读 · 0 评论 -
opencv:机器学习
#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/ml/ml.hpp>#define NTRAINING_SAMPLES100 // Number of training samples per class#d原创 2017-02-11 13:35:38 · 387 阅读 · 0 评论 -
opencv:Dirctory
OpenCV中有实现遍历文件夹下所有文件的类Directory它里面包括3个成员函数:(1)、GetListFiles: 遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹; (2)、GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件; (3)、GetListFilesR: 遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹。 例:#inclu原创 2017-02-11 13:37:40 · 494 阅读 · 1 评论 -
opencv:将图像copy到指定位置
#include "cv.h"#include "highgui.h"int main(){ IplImage* img = cvLoadImage("E:/opencv/src/sf.jpg",0); CvRect roi =cvRect(6, 6, 48, 48); cvNamedWindow("img"); cvShowImage("img", img);原创 2017-02-11 13:38:24 · 3308 阅读 · 0 评论 -
opencv:简单的HighGui
一、创建窗口int cvNamedWindow(const char* name,int flags = CV_WINDOW_WUTOSIZE); flags = 0 ;窗口大小可以由用户调整void* cvGetWindowHandle(const char* name);const char* cvGetWinodwName(void* window_handle);void c原创 2017-02-07 22:24:38 · 330 阅读 · 0 评论 -
opencv:slider(滑动条)
一、创建滑动条int cvCreateTrackbar(const char* trackbar_name,const char* window_name,int* value,int count,CvTrackbarCallback on_change);int cvGetTrackbarPos(const char* trackbar_name,const char* window_name)原创 2017-02-07 22:27:29 · 681 阅读 · 0 评论 -
opencv:鼠标事件
鼠标事件类型 CV_EVENT_MOUSEMOVE0CV_EVENT_LBUTTONDOWN1CV_EVENT_RBUTTONDOWN2CV_EVENT_MRUTTONDOWN3CV_EVENT_LBUTTONUP4CV_EVENT_RBUTTONUP5CV_EVENT_MBUTTONUP6CV_EVENT_LBUTTONDBLCLK7CV_EVENT_RBUTTON原创 2017-02-07 22:26:36 · 481 阅读 · 0 评论 -
opencv:高斯平滑
#include "cv.h"#include "highgui.h"int main(int argc,char** argv){ IplImage* img = cvLoadImage("1.jpg"); /*为另一个图片分配空间*/ IplImage* out = cvCreateIm原创 2017-02-07 22:05:08 · 475 阅读 · 0 评论 -
opencv:视频播放
#include "highgui.h"int main(int argc,char** argv){ cvNamedWindow("Example2",CV_WINDOW_AUTOSIZE); CvCapture* capture = cvCreateFileCapture("avi.avi"); IplImage* frame; while(1) {原创 2017-02-07 22:06:21 · 141 阅读 · 0 评论 -
opencv:视频播放控制
/***通过添加一个全局变量来表示滚动条位置并且添加一个回调函数更新变量以及重新设置视频读入位置。*/#include "highgui.h"#include "cv.h"int g_slider_position = 0;CvCapture* g_capture = NULL;void onTrackbarSlide(int pos){ //设置以帧数来设置读入位置(FRAME原创 2017-02-07 22:07:51 · 235 阅读 · 0 评论 -
opencv:图像变换
#include "cv.h"#include "highgui.h"int main(int argc,char** argv){ IplImage* img = cvLoadImage("E:/opencv/1.jpg"); IplImage* out = cvCreateImage(cvSize(img->width/2,img->height/2),img->depth,原创 2017-02-07 22:08:52 · 193 阅读 · 0 评论 -
opencv:canny边缘检测
#include "StdAfx.h" #include "cv.h" #include "cxcore.h" #include "highgui.h" int main( int argc, char** argv ) { //声明IplImage指针 IplImage* img = NULL;原创 2017-02-07 22:11:06 · 274 阅读 · 0 评论 -
opencv:打开摄像头
#include "highgui.h"int main(int argc,char** argv){ cvNamedWindow("Example7",1); CvCapture* capture = cvCreateCameraCapture(-1); IplImage* frame; while(1) { frame = cvQueryF原创 2017-02-07 22:11:56 · 181 阅读 · 0 评论 -
opencv:写入视频
#include "cv.h"#include "highgui.h"int main(int argc,char** argv){ CvCapture* capture = 0; //打开视频文件 capture = cvCreateFileCapture("E:/opencv/avi.avi"); if (!capture) { re原创 2017-02-07 22:12:51 · 429 阅读 · 0 评论 -
opencv:简单的数据结构
CvPoint int x,y 图像中的点 CvPoint2D32f float x,y 二维空间中的点 CvPoint3D32f float x,y,z 三维空间中的点 CvSize int width,height 图像的尺寸 CvRect int x,y,width,height 图像的部分区域 CvScalar double val[4] RGBA值#inc原创 2017-02-07 22:15:08 · 121 阅读 · 0 评论 -
opencv:CvMat总结
* 综述:* * OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样. * OpenCV将向量作为1维矩阵处理. * 矩阵按行存储,每行有4字节的校整.* 分配矩阵空间:CvMat* cvCreateMat(int rows, int cols, int type);type: 矩阵元素类型. 格式为CV_(S|U原创 2017-02-07 22:19:00 · 389 阅读 · 0 评论 -
opencv:ROI
#include "cv.h"#include "highgui.h"int main(int argc,char** argv){ IplImage* src; src = cvLoadImage("E:/opencv/1.jpg"); int x = 250,y = 250; int width = 250,heigh = 250; int add = 2原创 2017-02-07 22:19:45 · 160 阅读 · 0 评论 -
opencv:矩阵和图像操作
#include "cv.h"#include "highgui.h"//alpha融合int main(int argc,char** argv){ IplImage* src = cvLoadImage("E:/opencv/1.jpg"); IplImage* src1 = cvLoadImage("E:/opencv/lena.png"); int x = 250原创 2017-02-07 22:21:39 · 229 阅读 · 0 评论 -
opencv:绘图
一、画一条直线void cvLine(CvArr* array,CvPoint pt1,CvPoint pt2,CvScalar color,int thickness = 1,int connectivity = 8);二、画一个矩形void cvRectangle(CvArr* array,CvPoint pt1,CvPoint pt2,CvScalar color,int thickness原创 2017-02-07 22:22:58 · 149 阅读 · 0 评论 -
opencv:数据存储
一、打开并释放 cvOpenFileStorage 为读/写打开存储文件 cvReleaseFileStorage 释放存储的数据二、写入cvStartWriteStruct 开始写入新的数据结构cvEndWriteStruct 结束写入数据结构 cvWriteInt 写入整型数据cvWr原创 2017-02-07 22:23:48 · 243 阅读 · 0 评论 -
opencv:轮廓
一、内存//创建一个内存存储器CvMemStorage* cvCreateMemStorage(int block_size = 0);//释放该内存存储器的所有空间void cvReleaseMemStorage(CvMemStorage** storage);//清空内存存储器void cvClearMemStorage(CvMemStorage* storage);//向内存存储器原创 2017-02-11 13:41:24 · 290 阅读 · 0 评论