加速你图像访问速度.pdfVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字图像处理教程:特色专题 加速你的图像访问速度2 一、原理介绍2 1、基于数据指针的图像访问2 2、基于数据行首地址的图像访问3 3、OpenCV.at()模板函数4 4、OpenCV迭代器5 二、实验内容7 三、实验总结10 加速你的图像访问速度 KeyWords:图像处理 算法加速 图像访问速度 众所周知,图像处理算法耗时的两大原因在于:一是计算量大,包括各种三角函数、反 三角函数、积分计算等。二是处理数据量大,频繁的访问内存,内存地址计算耗时。下面我 们将介绍几种常用的图像内存访问方式,并且使用各种方式实现一个3*3 的均值滤波,测试 各个方式的运行耗时,通过C++并且对各个方式的特性与适应范围进行对比总结。 一、原理介绍 1、基于数据指针的图像访问 基于数据指针的图像访问,是一中底层的数据访问方法,需要计算每一次访问的内 存地址。均值滤波编码如下: 运行耗时测试代码如下: 2、基于数据行首地址的图像访问 基于数据行首地址的图像访问,是一种预先申请缓存保存图像行首地址的方法,可 以实现像素坐标访问图像。编码如下: 运行耗时测试代码如下: 3、OpenCV.at()模板函数 OpenCV 的.at()方法是一个模板方法,通过传入数据类型,便可以实现像素的坐标 访问。编码如下: 运行耗时测试代码如下: 4、OpenCV迭代器 OpenCV迭代器是STL (标准库)的C++接口,通过传入数据类型,可以实现像素 的数据访问。编码如下: 运行耗时测试代码如下: 二、实验内容 载入一副500 350 的单通道8位图像(数字图像处理标准图像),使用上述4 种方式进 行3*3均值滤波 100次,统计出各种方式的运行耗时 (毫秒)。 测试结果如下: 三、实验总结 关注微信公众号:图像大师,更多干货。 扫一扫: 实验结果统计 方式 运行耗时 (us) 平均时间(us) 基于数据指针 399497 3994.97 基于行首地址 444973 4449.73 .at() 480662 4806.60 迭代器 2955330 29553.3 从实验结果可以看 : (1)基于指针的图像数据访问速度最快,基于迭代器的访问最慢。 (2)基于行首地址的访问最为方便,且符合笛卡尔坐标的写法。 (3)越是接近底层的写法,数据读取最快。 PS Mat .at() STL :并不是说 的迭起器和 方法没用,迭代器提供了 的 接口,加快了算法编码进 ,能够在原有的算法基础上进行算法实现。

您可能关注的文档

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档