#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本相关的知识,希望能为你提供帮助。
本章简明

读取图像: inmread()方法显示图像: imshow()方法 waitKey()方法 destroyAllWindows()方法保存图像: imwrite()方法获取图像属性:shape size dtype

讲解读取图像
image = cv2.imread(filename,flags)功能: 读取图像 参数: filename :要读取图像的完整文件名称,只写文件名表示当前项目路径。可使用带路径文件名 flags : 1 表示读取彩色图像, 0 表示读取灰度图像。如果读取的是彩蛇图像,此参数设为0,可将其转换为灰度图像。此参数默认为 1返回值:读取到的图像数据

示例:
import cv2#包含openCV的包 image = cv2.imread("2.png",1) #不带路径表示当前项目默认路径 image = cv2.imread("D:/python_learn/opencv_learn/2.png",1)#带完整路径 print(image)

【#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本】运行结果:
#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

文章图片

这里打印的就是图像的数据,具体是什么后面章节会讲解,这里只需知道这是图片的数据信息即可。
我们已经获得了图片的信息,那么如何将这些信息转换为可视化图像呢?
图像的显示
上章节讲解了如何读取图像信息,这里就简介如何将图像信息打印出来,转化成图像信息。
cv2.imshow(winname,mat)功能 :显示图像 参数 : winname 显示图像窗口的名字 mat要显示的图像信息,cv2.imread的返回值 返回值: 无

示例:
import cv2 image = cv2.imread("D:/python_learn/opencv_learn/2.png",1) cv2.imshow("text",image)#显示图像窗口的名称是text

运行上述代码会发现,图像一闪而过。为什么呢?原因是程序结束了,我们在下面加一个延时看看
import cv2 import time image = cv2.imread("D:/python_learn/opencv_learn/2.png",1) cv2.imshow("text",image) time.sleep(10)

运行发现出现这种情况:
#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

文章图片

单纯的阻塞并不能实现,所以openCV中引入了waitKey方法。
阻塞
cv2.waitKey(delay) 功能: 阻塞delay时间,如果delay时间内有任何按键按下解除阻塞。如果delay时间内没有按键按下,一直阻塞delay时间结束 参数: delay 阻塞时间,单位ms,delay为0或者负数、空值时表示无限等待按键按下 返回值: 如果有按键按下,返回该按键的ASCII,如果没有按键按下返回-1

加入cv2.waitKey我们在测试一下
import cv2 image = cv2.imread("D:/python_learn/opencv_learn/2.png",1) cv2.imshow("text",image) rel=cv2.waitKey(3000) print(rel) print("hello world")

不按下按键:
#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

文章图片

#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

文章图片

3S内按下enter键
#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

文章图片

可以看到cv2.waitKey(3000)返回的是13,enter键的ASCII值正是13
销毁图像
就像文件操作一样,如何打开一个文件,操作完毕后肯定要关闭文件。
cv2.destoryAllWindows() 功能:销毁正在显示的所有窗体

示例:
import cv2 image = cv2.imread("D:/python_learn/opencv_learn/2.png",1) cv2.imshow("text",image) cv2.waitKey(3000) cv2.destroyAllWindows() cv2.waitKey(3000) print("text")

运行可以看到,前三秒有图像显示,后三秒没有图像显示。
图像的存储
cv2.write(filename,img) 功能:保存图片到指定目录下 参数: filename :文件路径 img : 要保存的图像

示例:将图像抓换为灰度图保存在我E盘下的hello_world文件夹中,图片名称为text.png
import cv2 image = cv2.imread("D:/python_learn/opencv_learn/2.png",0) cv2.imwrite("E:hello_world/text.png",image)

运行
#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

文章图片

获取文件属性
在处理图像的过程中,经常需要获取图像的类型、大小等图像属性。openCV提供了:shape、size、dtype三个常用属性
shape : 如果是彩色图像,获取的是一个包含图像的,水平像素、垂直像素、通道数的数组。 如果是灰度图像,获取的是一个包含图像的,水平像素、垂直像素的数组szie: 获取图像包含的像素个数(像素个数=水平像素x垂直像素x通道数),灰度图像的通道数为1dtype: 是获取图像的数据类型

示例:
import cv2 image = cv2.imread("D:/python_learn/opencv_learn/2.png",1) print("图像的shape属性",image.shape) print("图像的size属性",image.size) print("图像的数据类型",image.dtype)

输出:
#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

文章图片


    推荐阅读