OpenCV 图片读取、显示和保存基础教程
创作时间:
作者:
@小白创作中心
OpenCV 图片读取、显示和保存基础教程
引用
CSDN
1.
https://blog.csdn.net/weixin_42730667/article/details/102290855
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,广泛应用于图像处理、计算机视觉和机器学习等领域。本文将介绍OpenCV中图片读取、显示和保存的基本操作,帮助读者快速入门OpenCV图像处理。
读取图片
OpenCV读取图片的核心函数是cv.imread,其函数原型如下:
retval = cv.imread(filename[, flags])
参数说明:
filename:必选项,要读取的图片文件名,包括其文件所在的路径。flags:可选项,默认为cv.IMREAD_COLOR,用于指定读取图片的方式。
常用的flags参数有:
cv.IMREAD_COLOR:读取彩色图片,RGB通道,值为1。cv.IMREAD_GRAYSCALE:读取灰度图,单通道,值为0。cv.IMREAD_UNCHANGED:除了读取彩色图片外,还包括alpha通道,值为-1。
OpenCV支持多种图片格式,包括BMP、JPEG、PNG、TIFF等。
Python示例代码
import numpy as np
import cv2 as cv
img = cv.imread(".././datasheet/len_top.jpg",cv.IMREAD_COLOR)
cv.imshow('lenna',img)
C++示例代码
Mat cv::imread(const String & filename, int flags = IMREAD_COLOR)
返回类型为Mat,flags参数列表与Python接口类似。
显示图片
在程序运行过程中,经常需要调试和查看算法效果,这时就需要用到图片的显示功能。OpenCV中使用cv.imshow()函数可以直接把图片显示到屏幕上,其API接口如下:
None = cv.imshow(winname, mat)
参数说明:
winname:必选项,显示图片的窗口标题。mat:使用imread读取到的图片数据。
通常在使用cv.imshow之后,需要使用cv.waitKey()函数等待用户输入。waitKey的参数为毫秒数,表示等待的时间。waitKey(0)表示无限等待,直到用户按下任意键。
示例代码
cv.imshow('lenna',img)
cv.waitKey(0)
cv.destroyAllWindows()
保存图片
保存图片是图像处理中经常用到的功能,其API原型如下:
retval = cv.imwrite(filename, img[, params])
参数说明:
filename:要保存的文件名(可以带路径)。img:图片数据。params:可选参数,用于设置图片保存的参数,如质量、压缩级别等。
C++接口
bool cv::imwrite(const String & filename, InputArray img, const std::vector<int> & params = std::vector<int>())
对于不同格式的图片,params参数的含义不同:
- JPEG格式:从0到100的图片质量,默认为95。
- PNG格式:从0到9的压缩级别,默认为3。
- PPM/PGM/PBM格式:二进制格式标志,取值为0或1,默认值是1。
完整示例
import numpy as np
import cv2 as cv
img = cv.imread(".././datasheet/len_top.jpg",cv.IMREAD_COLOR )
cv.imshow('lenna',img)
cv.waitKey(0)
cv.destroyAllWindows()
cv.imwrite('save.png',img)
总结
本文介绍了OpenCV中图片读取、显示和保存的基本操作,这些是图像处理的基础。通过本文的学习,读者可以掌握OpenCV中处理图片的基本方法,为进一步学习图像处理和计算机视觉打下基础。
热门推荐
《剑网3》奇遇触发终极指南:10大维度提升触发概率
全球机场如何开展应急救援演练?
市面上酸奶种类繁多,如何喝得更健康?5个指标帮你买到好酸奶
TTL门电路:原理与应用详解
“胆固醇”高了?胆固醇是啥?
《流放之路2》如何用集市搜到想要的装备(进阶篇)
科普|AI搜索引擎重塑信息获取方式
最新公布:人体最佳作息时间表,很多人不清楚
想要成为年薪百万的项目经理,需要修炼哪几步?
手脚关节疼痛的原因及检查方法
解析打击制毒案件的法律实践与成效
孕晚期八个月的营养需要有哪些
探索动态头像新潮流,轻松打造个性化电脑动态头像全攻略
2025年新高考赋分怎么计算?附赋分成绩与原始成绩对照表
桦褐孔菌——东北亚的药用宝藏
去云冈石窟前一定要知道的3位大家
肝功检查要准确,这 5 点注意事项请牢记!
男人遇到真爱时的紧张表现
系统开发技术参数怎么写:从需求分析到运维管理的完整指南
金铲铲之战13.6版本双城传说2羁绊调整一览
【世界糖尿病日】能降糖的低碳饮食,为什么医生反而不推荐?
同比增长和同期增长的区别
用乐高积木打造梦想DIY乐园:家居创意新玩法详解
这档不断“更新”观众历史存档的节目凭什么“生命力拉满”?
梅西这几届的金球奖争议最大 最不该拿!虽然得奖 但很难服众
营养鳕鱼的几种美味做法,让我们一起来探索吧
家庭版提拉米苏(无淡奶油)制作教程
LOL所有英雄的图片和介绍在哪里找?如何快速了解每个英雄的技能和特点?
绵延未绝:前古典时期的安纳托利亚
如何建立一个完整的GDP数据库