1 / 4
文档名称:

快速学习OpenCV常用函数.doc

格式:doc   大小:39KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

快速学习OpenCV常用函数.doc

上传人:xunlai783 2017/12/18 文件大小:39 KB

下载得到文件列表

快速学习OpenCV常用函数.doc

文档介绍

文档介绍:访问图像元素如下:
1、针对各种图像(包括 4-通道)和矩阵的函数(cvGet2D, cvSet2D), 但是它们都很慢.
(img->origin=IPL_ORIGIN_TL) 或者是左下角(img->origin=IPL_ORIGIN_BL)
假设有 8-bit 1-通道的图像 I (IplImage* img):
I(x,y) ~ ((uchar*)(img->imageData + img->widthStep*y))[x]
假设有 8-bit 3-通道的图像 I (IplImage* img):
I(x,y)blue ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3]
I(x,y)green ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+1]
I(x,y)red ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+2]
如果增加点(100,100) 的亮度 30 ,那么可以:
CvPoint pt = {100,100};
((uchar*)(img->imageData + img->widthStep*))[*3] += 30;
((uchar*)(img->imageData + img->widthStep*))[*3+1] += 30;
((uchar*)(img->imageData + img->widthStep*))[*3+2] += 30;
CvPoint pt = {100,100};
uchar* temp_ptr = &((uchar*)(img->imageData + img->widthStep*))[x*3];
temp_ptr[0] += 30;
temp_ptr[1] += 30;
temp_ptr[2] += 30;
假设有 32-bit 浮点数, 1-通道图像 I (IplImage* img):
I(x,y) ~ ((float*)(img->imageData + img->widthStep*y))[x]
现在,通用方法:假设有 N-通道,类型为 T 的图像:
I(x,y)c ~ ((T*)(img->imageData + img->widthStep*y))[x*N + c]
或者你可使用宏 CV_IMAGE_ELEM( image_header, elemtype, y, x_Nc )
I(x,y)c ~ CV_IMAGE_ELEM( img, T, y, x*N + c )
2、访问矩阵元素
设有 32-bit 浮点数的实数矩阵 M (CvMat* mat):
M(i,j) ~ ((float*)(mat-> + mat->step*i))[j]
设有 64-bit 浮点数的复数矩阵 M (CvMat* mat):
Re M(i,j) ~ ((double*)(mat-> + mat->step*i))[j*2]
Im M(i,j) ~ ((double*)(mat-