OpenCV函数记录(一)

目录

前言

一直在怼图像处理,自然离不开OpenCV,也就是说经常遇到一些常用的OpenCV函数,记录下,提高效率!
学习!分享!感谢!

OpenCV1.0.0函数

  • IplImage
    origin为0表示顶左结构,即图像的原点是左上角,如果为1为左下角。一般从硬盘读入的图片或者通过cvCreateImage创建的IplImage图片默认是origin为0,即显示的时候都是正的。而由摄像头或者视频文件获取的帧图像origin为1,此时显示的时候扫描顺序是从下到上,显示也是正的。

  • cvSetImageROI

void cvSetImageROI( IplImage* image, CvRect rect );

大多数OpenCV函数都支持ROI,并将它作为一个独立图像进行处理,所有像素坐标都是从ROI的左上角或则左下角(基于图像结构)开始计算的。

IplImage *img=cvLoadImage("test.jpg");
cvSetImageROI(img, cvRect(100, 100, 50, 50)); //设置img的ROI区域

之后显示img图像只显示ROI标识的一部分,即改变了指针img,但是它仍然保留有原来图像的信息,在执行cvResetImageROI(img);之后,img指向原来的图像信息。
以上参考【opencv学习笔记】SetImageROI函数设置ROI区域的作用及用法

  • cvResize
void cvResize(const CvArr* src, CvArr* dst, int                    
              interpolation=CV_INTER_LINEAR );  

src:输入图像.
dst:输出图像.
函数cvResize将图像src的尺寸设置为dst。若设定ROI,函数将按常规支持ROI

  • cvAvgSdv

功能:求像素平均值和标准差

cvAvgSdv(const CvArr *arr, CvScalar *mean, CvScalar *std_dev, const 
         CvArr *mask = _null)

arr:图像输入数组
mean:图像像素值平均值,最多可存放四通道的平均值
std_dev : 图像标准差
mask : 像素开关
参考学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv

  • cvCreateTrackbar
int cvCreateTrackbar(
        const char* trackbar_name,const char* window_name,  
        int* value, int count, CvTrackbarCallback on_change 
);

trackbar_name:滑动条名称
window_name:窗口名称
value:当滑动条被拖动时,OpenCV自动将当前位置所代表的值传给指针指向的整数
count:滑动条所能达到的最大值
on_change:可选的回调函数
例:

cvCreateTrackbar( "Vmin", "CamShiftWindow", &adjVmin, 256, 0 );
//读取value值
int cvGetTrackbarPos(
    const char* trackbar_name,
    cosnt char* window_name
);

//设置value值
void cvSetTrackbarPos(
    const char* trackbar_name,
    const char* window_name,
    int pos
);

参考openCV学习笔记(2)–cvCreateTrackbar

  • cvFlip
void cvFlip( const CvArr* src, CvArr* dst=NULL, int flip_mode=0);

flip_mode
=0, 图像绕X轴旋转

0, 图像绕Y轴旋转
<0, 图像绕X轴和Y轴旋转

  • cvFZero
void cvZero(CvArr* arr);

功能:将图像中的每个像素都设置为0。

  • cvCopy
    功能:拷贝一个数组到另一个数组,注意dst数组的内存要事先开辟。
void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL );

src:输入数组
dst:输出数组
参考cvClone 和 cvCopy函数的区别

  • cvSplit
void cvSplit(const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr*     
             dst2, CvArr* dst3)

注意:src源图像dst0~dst3是分离出单通道图像。注意:输入图像的图像格式,比如如果是BGR,就应该按照BGR的方式获取分离的图像。


HSV中颜色空间中:Hue(色相),是色彩的基本属性;Saturation(饱和度),是指色彩的纯度,纯度越高,色彩越纯,低则逐渐变灰,取0~100%的数值;Value(亮度)。

H: 0~180 S: 0~255 V: 0~255

参考OpenCV 自学笔记21. RGB色彩空间和HSV色彩空间的理解

阈值化:在对各种图形进行处理操作的过程中,对图像中的像素做出取舍和决策,直接剔除一些低于或者高于一定值的像素。阈值可以被视作最简单的图像分割方法,比如,从一幅图像中利用阈值分割出我们需要的物体部分。这样的图像分割基于图像中物体与背景之间的灰度差异,此分割属于像素级分割。为了从一幅图像中提取出我们需要的部分,应该用图像中的每一个像素点的灰度值与选取的阈值进行比较,并作出相应的判断。注意:阈值的选取依赖于具体的问题。即物体在不同的图像中有可能会有不同的灰度值。
一旦找到需要分割的物体的像素点,可以对这些像素点设定一些特定的值来表示。例如,设置需要分割的物体的灰度值为0(黑色),其他像素点为255(白色)。当然像素点的灰度值可以任意,但最好设定两种颜色对比度较强的颜色。


总结

都是前人的东西,作为初学的菜鸟,只能是摘录部分,理解,希望以后贡献真正属于自己的东西,以后的文章都改为译文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值