OpenCV笔记

OpenCV命名规则

(1)函数名:

cvActionTargetMod(...)

Action ==核心功能(e.g.set,create)

Target==目标图像区域(target image area)(e.g. contour,polygon)

Mod==(可选的)调整语(optional modifiers)(e.g.argument type)


(2)矩阵数据类型:

CV_<bit_depth>(S|U|F)C<number_of_channels>

S==符号整型

U==无符号

F==浮点型

E.g. : CV_8UC1 一个8位无符号整型单通道矩阵

CV_32FC2一个32位浮点型双通道矩阵


(3)图像数据类型:

IPL_DEPTH_<bit_depth>(S|U|F)

E.g. : IPL_DEPTH_8U图像像素数据是8位无符号整型

IPL_DEPTH_32F图像像素数据是32位浮点型。

(4)头文件:

#include<cv.h>

#include<highgui.h>

#include<ml.h>

#include<cxcore.h>   //一般不需要,cv.h已包含

(5)OpenCV模块

  • cv – 核心函数库
  • cvaux – 辅助函数库
  • cxcore – 数据结构与线性代数库
  • highgui – GUI函数库
  • ml – 机器学习函数库


Windows visual 2010配置

转载这里www.opencv.org.cn/forum/viewtopic.php?f=1&t=15152(感谢作者无私奉献)

我把例子换成简介中的例子了~


//
// hello-world.cpp
//
// 该程序从文件中读入一幅图像,将之反色,然后显示出来. 
//

#include "stdafx.h"
#include <highgui.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>

int _tmain(int argc, _TCHAR* argv[])
{
	IplImage* img = 0; 
	int height,width,step,channels;
	uchar *data;
	int i,j,k; 

// 	if(argc<2){
// 		printf("Usage: main <image-file-name>\n\7");
// 		exit(0);
// 	} 

	// load an image  
	img=cvLoadImage("94.jpg",1);
	if(!img){
		printf("Could not load image file: %s\n",argv[1]);
		exit(0);
	} 

	// get the image data
	height    = img->height;
	width     = img->width;
	step      = img->widthStep;
	channels  = img->nChannels;
	data      = (uchar *)img->imageData;
	printf("Processing a %dx%d image with %d channels\n",height,width,channels); 

	// create a window
	cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
	cvMoveWindow("mainWin", 100, 100); 

	// invert the image
	// 相当于 cvNot(img);
	// IplImage *pDstImg = cvCreateImage(cvGetSize(img),img->depth,img->nChannels);
	// cvNot(img, pDstImg);
	for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
		data[i*step+j*channels+k]=255-data[i*step+j*channels+k]; 

	// show the image
	cvShowImage("mainWin", img ); 

	// wait for a key
	cvWaitKey(0); 

	// release the image
	cvReleaseImage(&img );
	return 0;
}
截图


GUI指令

 (1)创建和定位一个新窗口:

cvNamedWindow(WindowsName,CV_WINDOW_AUTOSIZE);

cvMoveWindow(WindowsName,100,100);

  (2)载入图像:

IplImage* img=0;

img=cvLoadImage(fileName,CV_LOAD_IMAGE_COLOR);

 (3)显示图像:

cvShowImage(WindowsName,img);

该函数可以在上面建立的窗口(win1)中显示彩色或灰度的字节型/浮点型图像。字节型图像像素值范围为[0-255];浮点型图像像素值范围为 [0-1]。彩色图像的三色元素按BGR(蓝-绿-红)顺序存储。

 (4)关闭窗口:

cvDestroyWindow(WindowsName);

 (5)改变窗口大小:

cvResizeWindow(WindowsName,width,heigh) //in pixels

//OpenCV1.0大部分使用c写的,所以木有传说中的构造函数~0~

CvPoint 二维坐标系下的点,类型为整型

typedef struct CvPoint

{
    int x;
    int y;
}CvPoint;


inline CvPoint cvPoint(int x,int y);
inline CVPoint cvPointFrom32f(CvPoint2D32f point);


CvPoint2D32f // 二维坐标下浮点数点
typedef struct CvPoint2D32f
{
     float x;
     float y;
}CvPoint2D32f;


inline CvPoint2D32f cvPoint2D32f(double x,double y);
inline CvPoint2D32f cvPointTo32f(CvPoint point);


CvPoint3D32f//三维坐标下的点,类型为浮点
typedef struct CvPoint3D32f
{
    float x;
    float y;
    float z;
}CvPoint3D32f;
inline CvPoint3D32f cvPoint3D32f(double x,double y,double z);


CVSize //矩形大小,(像素)

typedef struct CvSize

{

int width;

int height;

}CvSize;

inline CvSize cvSize(int width,int height);






























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值