OpenCV基础学习(一) 图像及视频的读取、显示和保存

OpenCV基础学习(一) 图像的读取、显示和保存

目标:
读取图像
函数形式

使用cv.imread()读取一张图片,要求图片和代码文件在同一文件目录,或者提供准确的图像路径。

retval	=	cv.imread(	filename[, flags]	)
参数解析
filename	图片名称
flags	    Flag that can take values of cv::ImreadModes

常用flags名称,可以用数字(-1、0、1)代替:
cv.IMREAD_COLOR :     读取彩色图像并忽略透明度    1
cv.IMREAD_GRAYSCALE : 以灰度图读取图像			 0
cv.IMREAD_UNCHANGED : 读取图像包含alpha通道		-1
示例代码
import numpy as np
import cv2 as cv

# Load a color image in grayscale
# img = cv.imread('image.jpeg',0)
img = cv.imread('/home/lzy/Desktop/opencv-learn/get-started/image.jpeg',0)
分析代码

首先,导入numpy、cv2包,使用cv.imread(),读取图像

Note cv.imread()第一个参数是图像文件的准确路径,容易出现错误。(读取一张图片,要求图片和代码文件在同一文件目录,或者提供准确的图像路径)即示例代码两种形式均可以完成函数效果。

显示图像
函数形式

使用cv.imshow()创建展示图像的窗口,并且窗口和图片大小一致。

None	=	cv.imshow(String winname,Array mat)
参数解析
winname	  Name of the window.
mat	      Image to be shown.
#已经被OpenCV读取到的图像 ==  【img = cv.imread('/image.jpeg',0)】
示例代码
import numpy as np
import cv2 as cv

# Load a color image in grayscale
img = cv.imread('image.jpeg',0)

cv.imshow('image',img)
cv.waitKey(0)		#等待按下任意键
cv.destroyAllWindows()		#销毁所有窗口
分析代码

Note cv.imshow()的第二个参数容易出现错误,参数是经过cv.imread()读取成功之后的图像数组,而不是图像本身的名字。此外,cv.waitKey()用于指定展示图片的时间,参数单位ms。即cv.waitKey(25)是展示图像25 ms,cv.waitKey(0)的作用为展示图像,直至用户按下键盘按键

保存图像
函数形式

第一个参数是保存文件的名称, 第二个是想要保存的、已经被转换的数组(img = cv.imread('image.jpeg',0)

retval	=	cv.imwrite(	filename, img[, params]	)
参数解析
filename	Name of the file.
img	        Image to be saved.
params	    Format-specific parameters encoded as pairs(paramId_1, paramValue_1,                 paramId_2, paramValue_2, ... .)#可以默认,不填写
示例代码
import numpy as np
import cv2 as cv

# Load a color image in grayscale
img = cv.imread('image.jpeg',0)

#Display an image
cv.imshow('image',img)
cv.waitKey(0)		#等待按下任意键
cv.destroyAllWindows()		#销毁所有窗口

#Write an image
cv.imwrite('messigray.png',img)
分析代码

Note 正如上面参数中的解释,params参数的个数并不是固定的(可以点击params获取具体的参数解释)。除此之外,不再做进一步的解释。

Matplotlib展示图像

此部分,没有涉及,具体情形,参见官网说明文档

示例代码
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt



img = cv.imread('messi5.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值