sem专员,百度seo最成功的优化,注册个网站多少钱,网店推广前言
上一篇文章中我们介绍了如何配置opencv#xff0c;而在这篇文章我们主要介绍的是如何使用opencv来是实现一些常见的图像操作。
图像的读取#xff0c;显示与存储
读取图像文件
在opencv中我们利用imread函数来读取图像文件,函数语法如下#xff1a;
imagecv2.imre…前言
上一篇文章中我们介绍了如何配置opencv而在这篇文章我们主要介绍的是如何使用opencv来是实现一些常见的图像操作。
图像的读取显示与存储
读取图像文件
在opencv中我们利用imread函数来读取图像文件,函数语法如下
imagecv2.imread(path,flag)参数说明
image:返回来的所读取的对象,如果读取失败,返回None.path:图像路径flag:可选参数又可叫图像旗标用来说明图像读取的格式省略则按照默认图像格式来读取。
下面我们来看一个简单的示例:
import cv2cv2.namedWindow(image, cv2.WINDOW_NORMAL)
img cv2.imread(rC:\\Users\\fengxu\Desktop\\Screenshots\\1b8fc10d60dbe62d15237451f13408a1.jpg)
cv2.resizeWindow(image, 600,400)
cv2.imshow(image, img)# 等待按键后关闭窗口否则imshow的窗口会立即消失
cv2.waitKey(0)
cv2.destroyAllWindows()这就是一个非常简单的加载图像的代码了。
图像的显示与图像窗口的关闭
基于opencv实现图像的显示
在opencv中我们可以基于cv.imshow()函数将读取的图像对象显示在opencv窗口上函数定义如下
cv2.imshow(window_name,image)参数说明
window_name:要显示窗口的标题image:要显示的图像对象
示例代码
import cv2# 创建一个可调整大小的窗口
cv2.namedWindow(image, cv2.WINDOW_NORMAL)# 读取图像文件
img cv2.imread(r./source/a.png)# 检查图像是否成功读取
if img is None:print(无法读取图像文件请检查路径是否正确。)
else:# 显示图像cv2.imshow(image, img)cv2.waitKey(0) # 等待按键输入参数为0表示无限等待直到按下任意键cv2.destroyAllWindows() # 关闭所有OpenCV窗口运行结果:
如何关闭opencv窗口
当我们将图片显示在opencv窗口后,除了点击关闭按钮关闭还可以使用下列函数:
cv2.destoryWindow(window_name); # 删除指定窗口
cv2.destoryAllWindows(); # 删除所有窗口控制按键事件
opencv可以通过cv2.waitkey()函数来等待按键事件函数语法如下
ret_keycv2.waitkey(delay);参数说明
ret_key:如果没有按下键盘上的值返回值是-1否则是按键对应的ASCII值delay:单位为毫秒
示例
5秒后关闭
import cv2# 创建一个可调整大小的窗口
cv2.namedWindow(image, cv2.WINDOW_NORMAL)# 读取图像文件
img cv2.imread(r./source/a.png)# 检查图像是否成功读取
if img is None:print(无法读取图像文件请检查路径是否正确。)
else:# 显示图像cv2.imshow(image, img)cv2.waitKey(10000) # 等待10秒cv2.destroyAllWindows() # 关闭所有OpenCV窗口按q键退出
import cv2# 创建一个可调整大小的窗口
cv2.namedWindow(image, cv2.WINDOW_NORMAL)# 读取图像文件
img cv2.imread(r./source/a.png)# 检查图像是否成功读取
if img is None:print(无法读取图像文件请检查路径是否正确。)
else:# 显示图像cv2.imshow(image, img)ret_keycv2.waitKey(0) if ret_key ord(q): # # 如果按下q键则退出cv2.destroyAllWindows() # 关闭所有OpenCV窗口调整图像窗口的大小
我们在使用imshow函数创建窗口显示图像时窗口的大小是固定,但是我们可以通过namedWindow()函数建立未来要显示图像的窗口。
cv2.namedWindow(window_name,flag)flag:窗口旗标参数类型有 cv2.WINDOW_NORMAL:用户可以自行调整窗口cv2.WINDOW_AUTOSIZE自动调整大小cv2.WINDOW_OPENGL支持以OPENGL的方式打开窗口
图像的存储
在opencv中我们可以使用imwrite函数存储图像,函数声明如下
retcv2.imwrite(path,image)成功返回True,失败返回False
示例代码:
import cv2# 创建一个可调整大小的窗口
cv2.namedWindow(image, cv2.WINDOW_NORMAL)# 读取图像文件
img cv2.imread(r./source/a.png)# 检查图像是否成功读取
if img is None:print(无法读取图像文件请检查路径是否正确。)retcv2.imwrite(./source/output.png, img)
if ret:print(图像保存成功。)
else:print(图像保存失败。)cv2.waitKey(0)运行后我们发现source文件夹下出现了我想要保存的结果
课后练习
选择一张图片分别以灰色与彩色两种方式读取,同时以_color后缀存储彩色图片_gray存储灰色照片
# 彩色
import cv2# 创建一个可调整大小的窗口
cv2.namedWindow(image1, cv2.WINDOW_NORMAL)# 读取图像文件
img1 cv2.imread(r./source/a.png)
cv2.imshow(image1, img1)
cv2.waitKey(0)# 检查图像是否成功读取
if img1 is None:print(无法读取图像文件请检查路径是否正确。)retcv2.imwrite(./source/a_color.png, img1)
if ret:print(图像保存成功。)
else:print(图像保存失败。)# 灰色
import cv2# 创建一个可调整大小的窗口
cv2.namedWindow(image2, cv2.WINDOW_NORMAL)# 读取图像文件
img2 cv2.imread(r./source/a.png, cv2.IMREAD_GRAYSCALE)
cv2.imshow(image2, img2)
cv2.waitKey(0)# 检查图像是否成功读取
if img2 is None:print(无法读取图像文件请检查路径是否正确。)retcv2.imwrite(./source/a_gray.png, img2)
if ret:print(图像保存成功。)
else:print(图像保存失败。)