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中处理图片的基本方法,为进一步学习图像处理和计算机视觉打下基础。
热门推荐
中国天宫VS国际空间站:轻装上阵的天宫有何独到之处?
厄德高:我需要提升自己,阿森纳不会放弃争冠
如何识别新鲜食材?从颜色、气味、触感三个方面深度解析技巧
《黑神话:悟空》PC与PS5画质对比,哪个更值得选择?
约束优化方法之拉格朗日乘子法与KKT条件
古代龙城的位置究竟在哪儿呢
人际交往中的黄金法则:理解边界线的重要性
自定义 Windows“开始”菜单
宋朝传统版《百家姓》,第172名,“缪姓”的起源和历史,你知道吗
揭秘缪姓:一个源自春秋时期的古老姓氏
嘉靖皇帝八字命例欣赏(嘉靖出生年月日)
明朝嘉靖帝的八字命理解释
漳州绿色低碳城市建设:探索与实践
工伤认定有时限吗?能口头传达工伤认定决定吗?
适合家庭养狗的品种推荐(选择宠物从这里开始)
基因的概念
发生反向电流怎么办?如何更好地阻断反向电流呢?
黄鼬:一种常见的野生动物
八卦掌·功法体系
管理学中的决策智慧:定义与实战解析
Minecraft 1.18及以后版本矿石生成机制详解
中医里为啥“神医”多,西医里却很少?
选择净水器:有桶机与无桶机的优缺点全解读
黄鼠狼的种类:鼬鼠种类指南
唐尚珺巧妙化解室友矛盾,智慧策略显成效
2025年属虎取什么名字?适合虎宝宝的命名解析
办公室装修设计:从风格到空间规划的全面指南
如何查阅往年论文数据库
大黄使用需要注意什么
【首青丝的乌发秘籍&中医视角下的养发之道】