《WIN10+VS2015+OpenCV3.1.0配置》文章中配置好OpenCV后第一个测试程序就是显示图像,但是显示图像不止这一种方法,索性就记录下我目前知道的其他图像显示方法,以便之后检索,其中不完善之处希望读者能够指出。

根据百度文库上的这篇文章,知道OpenCV上常见的有四种表示图像的结构。分别是CvArr,CvMat,IplImage,Mat。

CvArr

老版本的图像表示结构。是一个抽象基类,在函数原型中,常见到CvArr(CvArr*),这就允许把CvMar* 或者IplImage* 传递到程序或函数参数中了。个人觉得不是很重要,以后应该也不会用到很多,所以不深入了解了。

CvMat

是一种用矩阵结构来表示图形的方式。具体详见:http://blog.csdn.net/augusdi/article/details/8864950

IplImage

是较老版本的一种图像类型,对图像进行编码的基本结构。这些图像可能是灰度,彩色,4通道的(RGB+ alpha)。其中每个通道可以包含任意的整数或浮点数。

用法示例:

IplImage *iplImg = cvLoadImage("C:\\Users\\Public\\Pictures\\Sample Pictures\\1.jpg", 1);
//最后的1表示读取的是彩色图片,如果需要把原图转换成灰白图片的话就是0
cvShowImage("picture", iplImg);
waitKey(10000);
cvReleaseImage(&iplImg);
cvDestroyWindow("picture");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Mat

新版本中的图像容器,是和Matlab中的函数对应的。基本上讲 Mat 是一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数)的指针。矩阵头的尺寸是常数值,但矩阵本身的尺寸会依图像的不同而不同,通常比矩阵头的尺寸大数个数量级。

用法示例:

Mat img = imread("C:\\Users\\Public\\Pictures\\Sample Pictures\\1.jpg");
imshow("picture", img);
waitKey(10000);
img.release();
cvDestroyWindow("picture");
  • 1
  • 2
  • 3
  • 4
  • 5

参考文献: 
1. http://blog.csdn.net/wangxuwen2/article/details/51848634 
2. http://wenku.baidu.com/link?url=ugU2DfQU-tQ8w-RC-8IMj1uWiHWPGS3brvZaGKuaUdqeHjEFIFqaCly6d2nYkoebixJo7wgxKmDARf8GESBTVqd8wh59Rpy_rvXNwYZxn_y 
3. http://blog.csdn.net/augusdi/article/details/8864950

版权声明:本文为博主原创文章,未经博主允许不得用于商业转载。 https://blog.csdn.net/wangxuwen2/article/details/51851578

OpenCV学习笔记(一):图像显示相关推荐

  1. OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast

    OpenCV学习笔记(五十六)--InputArray和OutputArray的那些事core 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray ...

  2. opencv学习笔记22:傅里叶变换,高通滤波,低通滤波

    傅里叶变换原理 任何连续的周期信号,都可以由一组适当的正弦曲线组合而成. 下列左上图由其他三图构成. 左图经过傅里叶变换,由时域图转换到频域图.相互可逆 相位:不是同时开始的一组余弦函数,在叠加时要体 ...

  3. opencv学习笔记1:图片读入,显示与保存(有代码)

    读入图像 cv2.imread(filepath,flags) 说明: filepath文件名 图片路径. 如原始路径为: D:\lesson\2345_image_file_copy_15.jpg ...

  4. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  5. OpenCV学习笔记02--图像像素处理--二值图像、灰度图像、彩色图像像素的处理、numpy.array中的对应的函数

    目录 (一)灰度图像像素处理 (二)彩色图像像素处理 (三)numpy.array库在图像处理中的应用 (四)查看图像的属性信息 接着笔记01继续总结,当我们读取一幅图像的时候,一般为二值图像.灰度图 ...

  6. OpenCV学习笔记(十七)——K均值聚类

    当我们要预测的是一个离散值时,做的工作就是"分类".机器学习模型还可以将训练集中的数据划分为若干个组,每个组被称为一个"簇(cluster)".它的重要特点是在 ...

  7. OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...

    函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...

  8. opencv学习笔记(二):基于肤色的人手检测

    opencv学习笔记(二):基于肤色的人手检测 原文:http://blog.csdn.net/wzmsltw/article/details/50849810 先写了人手的检测程序,下一步基于检测程 ...

  9. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  10. OpenCV学习笔记大集锦

    转载自: OpenCV学习笔记大集锦 – 视觉机器人 http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese/ ...

最新文章

  1. 垃圾回收③---垃圾回收器
  2. [手把手教]discuzX2插件制作教程__最菜鸟级别的入门坎 一
  3. 【flume】flume读取web应用某个文件夹下日志到hdfs
  4. 新入行的包工头,一定做好下面几点
  5. Windows软件路由器运用实例之OSPF配置
  6. IDEA中自动导包快捷键
  7. python爬虫开发 urlparse、parse_qs、urlencode、quote、unquote、urljoin 用法总结
  8. 记录学习历程-----游戏编程
  9. 郑州统考英语计算机培训,2016年郑州大学远程教育英语统考练习题
  10. video标签 设置autoplay无效
  11. 现代控制理论(机器人方向)习题与实践补充资料和复习说明(2019版)
  12. hibernate查询结果映射到实体和map的方法
  13. 英语构词法软件wordformation发布全新1.0版本
  14. 数据模拟:利用Java模拟数据(姓名,邮箱,地址,电话等信息,时间,工资,1-10随机数)并存入mysql
  15. 【调剂】北京科技大学钢铁共性技术协同创新中心2021年硕士拟接收调剂公告
  16. JavaScript中的标签语句
  17. 2017免费最新版YY注册机
  18. 关于云计算资源调度的一些思考
  19. IDEA常用快捷键罗列,分享分享
  20. win7如何评价计算机,一个90后眼中的Windows系列计算机系统

热门文章

  1. boost::adaptors::formatted相关的测试程序
  2. boost::hana::append用法的测试程序
  3. GDCM:gdcm::IOD的测试程序
  4. GDCM:获取序列超声的测试程序
  5. Boost:bind绑定右值的测试程序
  6. ITK:沿所选方向累积图像的像素
  7. VTK:可视化之TextureMapImageData
  8. VTK:图片之ImageRotate
  9. OpenCV离散傅立叶变换DFT的实例(附完整代码)
  10. OpenCV gapi模块API的引用(附完整代码)