利用cvGetCols裁剪图像

来源:互联网 发布:matlab生成任意矩阵 编辑:程序博客网 时间:2024/06/05 18:42

有时为了提高图像处理的速度,只对有价值的区域进行处理,发现opencv中有一个很好用的函数,可以对图像进行裁剪
返回数组的列或一定跨度内的列
CvMat* cvGetCol( const CvArr* arr, CvMat* submat, int col );
CvMat* cvGetCols( const CvArr* arr, CvMat* submat, int start_col, int end_col );
arr
输入数组
submat
指向结果子数组头指针.
col
选定的列索引下标,该下标以0为基准。
start_col
跨度的开始列(包括该列)索引下标,该下标以0为基准。
end_col
跨度的结束列(不包括该列)索引下标,该下标以0为基准。

有时为了提高图像处理的速度,只对有价值的区域进行处理,发现opencv中有一个很好用的函数,可以对图像进行裁剪

#include <iostream>#include <cv.h>#include <highgui.h>using namespace cv;using namespace std;void main(){    IplImage *src = cvLoadImage("lena.jpg") ;    cvShowImage("src",src) ;    IplImage *dst = cvCreateImage(cvSize(200 , src->height) , src->depth , src->nChannels) ;    cvZero(dst) ;    cvGetCols(src , (CvMat*)dst , 20 , 300) ;    cvShowImage("dst" , dst) ;    cvWaitKey(0) ;//     IplImage *dst = cvCreateImage(cvSize(100 , 100) , src->depth , src->nChannels) ;}

运行结果

还有一个函数cvGetSubRect()可以截取任意大小的矩形区域,同样可以对图像进行指定大小的裁剪

0 0