问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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)

返回类型为Matflags参数列表与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中处理图片的基本方法,为进一步学习图像处理和计算机视觉打下基础。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号