- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenCV处理图像的基础知识
【OpenCV】访问图像中每个像素的值
IplImage是OpenCV中CxCore部分基础的数据结构,用来表示图像,其中Ipl是Intel Image Processing Library的简写。以下是IplImage的结构分析来自OpenCV中文网站:/index.php/Cxcore%E5%9F%BA%E7%A1%80%E7%BB%
93%E6%9E%84#IplImage
假设你要访问第k通道、第i行、第j列的像素。
直接访问
对我们来说比较重要的两个元素是:char *imageData以及widthStep。imageData存放图像像素数据,而widStep类似CvMat中的step,表示以字节为单位的行数据长度。
一个m*n的单通道字节型图像,其imageData排列如下:
如果我们要遍历图像中的元素,只需:
对于单通道字节型图像
for(i=0,iheight,i++)
for(j=0,jwidth,j++)
IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);
((uchar *)(img-imageData + i*img-widthStep))[j]=111; /指向第i行的起始位置
对于多通道字节型图像IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);
((uchar *)(img-imageData + i*img-widthStep))[j*img-nChannels + 0]=111; // B
((uchar *)(img-imageData + i*img-widthStep))[j*img-nChannels + 1]=112; // G
((uchar *)(img-imageData + i*img-widthStep))[j*img-nChannels + 2]=113; // R
对于多通道浮点型图像:
IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);
((float *)(img-imageData + i*img-widthStep))[j*img-nChannels + 0]=111; // B
((float *)(img-imageData + i*img-widthStep))[j*img-nChannels + 1]=112; // G
((float *)(img-imageData + i*img-widthStep))[j*img-nChannels + 2]=113; // R
现在,一般的情况下,假设有N-通道,类型为T的图像:
I(i,j)c ~ ((T*)(img-imageData + img-widthStep*i))[j*N + c]
基于指针的直接访问:(简单高效)
这种直接访问的方法速度快,但容易出错,我们可以通过定义指针来访问。即:
IplImage* img = cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);
int height = img-height;
int width = img-width;
int step = img-widthStep/sizeof(uchar);
uchar* data = (uchar *)img-imageData;
data[i*step+j] = 111;
而多通道(三通道)字节图像中,imageData排列如下:
其中(Bi,Bj)(Gi,Gj)(Ri,Rj)表示图像(i,j)处BGR分量的值。使用指针的遍历方法如下:
IplImage* img = cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);
int height = img-height;
int width = img-width;
int step = img-widthStep/sizeof(uchar);
int channels = img-nChannels;
uchar* data = (uchar *)img-imageData;
data[i*step+j*channels+k] = 111;
对于多通道浮点型图像假设图像数据采用 4字节32 位行对齐方式IplImage* img = cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);
int height = img-he
您可能关注的文档
- M算法的研究.doc
- NAFLD诊疗指南.doc
- Naga上院的顶级住宅开发模式.doc
- NANDA心理问题护理诊断学生版.doc
- NANDA确定的128个护理诊断.doc
- Nanog基因论文Nanog和Oct4基因在前列腺癌中的表达及意义.doc
- NACA0023三维机翼水动力性能数值分析.doc
- NaOH预处理对玉米秸秆干发酵影响的研究.doc
- NAP染色临床应用.doc
- nature发表论文的策略和手段看看外国科学家对在顶尖杂.doc
- 专题13 风云变幻—近代以来的国际关系与国际格局的演变(课件)-2025年高考历史二轮复习讲练测(新高考通用).pptx
- 3.2.3 呼吸作用-2024-2025学年七年级生物下册同步教学课件(人教版2024).pptx
- 2025春沪科版初中物理八年级下册教学课件 第八章 第4节 流体压强与流速的关系.pptx
- 2024-2025学年七年级数学下册举一反三系列(沪科版2024)专题8.9 整式乘法与因式分解全章专项复习【3大考点10种题型】(举一反三)(沪科版2024)(解析版).docx
- Unit 1(复习课件) -2024-2025学年英语五年级下册单元速记巧练系列(人教PEP版).pptx
- 3.1.1 种子的萌发(第二课时)-2024-2025学年七年级生物下册同步教学课件(人教版2024).pptx
- 3.2.1 水的利用与散失-2024-2025学年七年级生物下册同步教学课件(人教版2024).pptx
- 6.5 国家司法机关(教学课件)-2024-2025学年八年级道德与法治下册高效课堂同步教学课件(统编版).pptx
- 2025春沪科版初中物理八年级下册教学课件 第九章 第4节 物体的浮与沉 第1课时.pptx
- 专题09 多元共生—古代世界文明的多样性与区域扩展(课件)-2025年高考历史二轮复习讲练测(新高考通用).pptx
文档评论(0)