- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IplImage的像素的访问
IplImage的像素的访问
当处理图象数据时,通常需要快速高效。使用如cvSet*D或和它等效的函数会造成调用时的开销。我们应该尽可能使用直接存取图象内部数据的方法。有了IplImage内部结构的知识,我们现在可以理解最好的方法。
尽管通常OpenCV提供很多对图象的操作优化良好的例程,但是经常会有些任务是库里找不到包装好的例程的。下面我们考虑一个例子,我们想要把三通道HSV图象的饱合度调整为255(8位图象的最大值)而保持色调不变。要完成这个任务最好是我们自己处理图象的每个象素。这和我们前边对矩阵的操作相似,但在IplImage和CvMat之间也有一些主要的不同。例3-11演示了高效的方式。
例3-11,把HSV图象的S、V分量最大化:
void saturate_sv( IplImage* img ) {??? for( int y=0; yimg-height; y++ ) {??????? uchar* ptr = (uchar*) (img-imageData + y * img-widthStep);??????? for( int x=0; ximg-width; x++ ) {??????????? ptr[3*x+1] = 255;??????????? ptr[3*x+2] = 255;??????? }??? }}
我们只是简单的直接计算相关行y最左边的象素的指针ptr(We simply compute the pointer ptr directly as the head of the relevant row y)。从那里为参考,我们引用第x列的饱合度数值。因为图象是三通道的,第c通道的地址为3*x+c。
在OpenCV中,一副HSV图象和RGB图象,除了对通道的翻译有所不同,其它是没有区别的。因此由一副HSV图象构建一副RGB图象实际所有的操作完全只在“数据”区域。在图象头中,没有任何成员用来表明数据通道的意义。
IplImage和CvMat相比一个重要的不同是imageData的行为。CvMat的数据元素是一个联合体,所以必须说明你想要的指针类型;imageData是一个byte型(uchar*)。我们已经知道被指向的数据不一定是uchar类型,这意味着当对指针作算术运算时,你可以简单的加上widthSetp(同样是以字节数为度量的)而不用担心实际的数据类型,直需在做完加法后,把你计算所得的指针转换成你想要的数据类型。总结:当对矩阵操作时,你必须对偏移量进行缩减,因为数据指针可能不是byte型;而当对图象操作时,你可以使用“看上去”那么多的偏移量,因为数据指针永远是byte型,因此在你准备使用它时,只需把整部分做类型转换。?
访问图象数据的补充资料
资料来源:OpenCV中文网站
(1) 假设你要访问第k通道、第i行、第j列的像素。
(2) 间接访问: (通用,但效率低,可访问任意格式的图像)
对于单通道字节型图像:
IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);CvScalar s;s=cvGet2D(img,i,j);// get the (i,j) pixel valueprintf(intensity=%f\n,s.val[0]);s.val[0]=111;cvSet2D(img,i,j,s);// set the (i,j) pixel value?
对于多通道字节型/浮点型图像:
IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);CvScalar s;s=cvGet2D(img,i,j);// get the (i,j) pixel valueprintf(B=%f, G=%f, R=%f\n,s.val[0],s.val[1],s.val[2]);s.val[0]=111;s.val[1]=111;s.val[2]=111;cvSet2D(img,i,j,s);// set the (i,j) pixel value?
(3) 直接访问: (效率高,但容易出错)
对于单通道字节型图像:
IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);((uchar *)(img-imageData + i*img-widthStep))[j]=111;?
对于多通道字节型图像:
IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);((uchar *)(img-im
您可能关注的文档
- Résumé du Voyage de Chihiro.doc
- 视听说III 原文和答案 Unit3.doc
- 浙江省英语本科自学考试2008年1月试题.doc
- 研究生英语翻译必考整理.docx
- 【Eric】PS教程帖:illustrate制作绚丽效果文字.docx
- 2013年12月英语四级改革 新题型 预测题及答案.doc
- 2000-2015年六级写作历年真题.doc
- 巴朗填空练习93---考试库---GRE填空单项练习.doc
- 美国文学文学名词解释.docx
- 13春大学英语一随堂答案11.doc
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
最近下载
- 理财教材《小狗钱钱》.pdf
- 护理品管圈问题解决型之提高慢性肾功能不全患者饮食指导知晓率.pptx VIP
- 复旦投毒案林森浩(详细的参考资料整理).docx
- Axure RP原型设计图解微课视频教程(Web+App)(刘刚)PPT全套完整教学课件.pptx
- 2024年国家电网招聘之财务会计类题库附参考答案(轻巧夺冠).docx
- 1精益管理倡导者培训.pptx
- 整本书阅读 《朝花夕拾》(同步课件) 七年级语文上册(统编版2024).pptx
- 2024-2029年中国房地产投资行业发展分析及投资风险预警与发展策略研究报告.docx
- 文旅融合背景下的文化遗产活化措施.pptx VIP
- 非物质文化遗产活化策略PPT.pptx VIP
文档评论(0)