- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章VC++图像编程基础精要.ppt
4. 图形绘制与位图块传送 GetDC() 返回当前位图的设备描述表; ReleaseDC() 释放设备描述表; GetPixel() 返回指定位置像素的颜色; SetPixel() 设置指定位置像素的颜色; SetPixelIndexed() 设置指定位置像素颜色的索引值; SetPixelRGB() 设置指定位置像素的红绿蓝分量; GetColorTable() 获取调色板颜色分量(红、绿、蓝)值; SetColorTable() 设置调色板颜色分量(红、绿、蓝)值; SetTransparentColor() 设置透明颜色的索引值,只能有一种颜色可为透明; Draw() 从源矩形复制到目标矩形,支持伸缩、融合与透明; BitBlt() 从位图的一个矩行区域复制到另一位图上的指定区域; MaskBlt() 位图块传送时须与指定的模板图像做逻辑操作; PlgBlt() 从位图的矩形区域到另一位图上平行四边形间的位块传输; StretchBlt() 从源矩形复制到目标矩形,支持伸缩; TransparentBlt() 位图块传送时复制到透明色的位图; 3.6 CImage类应用实例:实验一 3.6.1 建立应用程序框架(见实验指导书) 图像处理软件包---OpenCV 什么是OpenCV OpenCV是Intel公司开发的开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。 重要特性 OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。 OpenCV 对非商业应用和商业应用都是免费(FREE)的。(细节参考 license)。 OpenCV 为Intel Integrated Performance Primitives (IPP) 提供了透明接口。这意味着如果有为特定处理器优化的的 IPP 库, OpenCV 将在运行时自动加载这些库。 更多关于 IPP 的信息请参考: /software/products/ipp/index.htm 谁创建了它 作者列表可以在文件AUTHORS中找到。 此外,还有很多人给出了建议、补丁、BUG 报告等等。一个不太完整的列表在文件THANKS中。 很多“雷锋”式的热心人的奉献 还在继续完善之中 常用的版本OpenCV2.3.1,大量C++类函数 目前必威体育精装版版本:OpenCV2.4 OpenCV2.3.1介绍 Mat类简介 在2001年刚刚出现的时候,OpenCV基于 C 语言接口而建。为了在内存(memory)中存放图像,当时采用名为 IplImage 的C语言结构体,时至今日这仍出现在大多数的旧版教程和教学材料。 但这种方法必须接受C语言所有的不足,这其中最大的不足要数手动内存管理,其依据是用户要为开辟和销毁内存负责。 虽然对于小型的程序来说手动管理内存不是问题,但一旦代码开始变得越来越庞大,你需要越来越多地纠缠于这个问题,而不是着力解决你的开发目标。 OpenCV在2.0版本中引入了一个新的C++接口,利用自动内存管理给出了解决问题的新方法。Mat最大的优势跟STL很相似,使用这个方法,你不需要纠结在管理内存上,而且你的代码会变得简洁(少写多得)。 但C++接口唯一的不足是当前许多嵌入式开发系统只支持C语言。所以,当目标不是这种开发平台时,没有必要使用旧方法。同时Mat结构可以方便的进行矩阵的运算。 关于 Mat ,首先要知道的是(1)不必再手动地为其开辟空间(2)不必在不需要时立即将空间释放。但手动地做还是可以的。 基本上讲 Mat 是一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数)的指针。 矩阵头的尺寸是常数值,但矩阵本身的尺寸会依图像的不同而不同,通常比矩阵头的尺寸大数个数量级。(注:当在程序中传递图像并创建拷贝时,大的开销是由矩阵造成的,而不是信息头。) OpenCV是一个图像处理库,囊括了大量的图像处理函数,为了解决问题通常要使用库中的多个函数。同时不要忘了我们正在讨论的是计算量很大的图像处理算法,因此,除非万不得已,我们不应该拷贝大 的图像,因为这会降低程序速度。 为了搞定这个问题,OpenCV使用引用计数机制。其思路是让每个 Mat 对象有自己的信息头,但共享同一个矩阵。这通过让矩阵指针指向同一地址而实现。而拷贝构造函数则 只拷贝信息头和矩阵指针 ,而不拷贝矩阵。 如果一定要拷贝图像数据本身的话,可以使用Mat类的clone() 或者 copyTo()方法。 总结两点:(1)赋值运算符和拷
您可能关注的文档
- 第三方支付概念发展趋势所存在的风险等ppt精要.ppt
- 第三方物流(ppt)高职高专物流管理专业教材新系精要.ppt
- 第三方物流ppt精要.ppt
- 第三框国家财政ppt精要.ppt
- 第三章 企业并购估价精要.ppt
- 第三章 信用与利率机制(货币银行学-东北财经大学,范立夫)精要.ppt
- 第三章 凿岩机械精要.ppt
- 第三章 和解剂精要.ppt
- 第三章 商业银行commercial bank精要.ppt
- 第三章 商业银行负债业务管理(商业银行经营管理学-湖南大学,彭建刚)精要.ppt
- 中国防盗拉链窗行业市场发展前景及发展趋势与投资战略研究报告.docx
- 中国生产机床照明灯行业市场发展前景及发展趋势与投资战略研究报告.docx
- 2024-2030年中国黑色电气石行业市场全景评估及发展前景预测报告.docx
- 2024-2030年中国新疆风力发电行业市场发展监测及投资前景展望报告.docx
- 2024-2030年中国石油焦行业市场深度分析及发展趋势预测报告.docx
- 中国铝合金时效电炉行业市场发展前景及发展趋势与投资战略研究报告.docx
- 2024-2030年中国泡沫铝行业市场发展监测及投资前景展望报告.docx
- 2023-2029年中国漂白土行业市场发展监测及投资潜力预测报告.docx
- 2025-2031年中国智能托管行业发展监测及投资战略咨询报告.docx
- 中国电路保护器NRA行业市场发展前景及发展趋势与投资战略研究报告.docx
文档评论(0)