第03课 读取、显示、保存图像
| **学科:**人工智能 | 年级: 七年级上 |
|---|---|
| 课题: 第3课时 图像的读取、显示及保存 | 课时数:1课时 |
学情分析:
通过上一节课的学习,学生已经了解了像素和分辨率,知道了黑白图像是由一个个像素点组成的二维数组表示的,对于计算机中图像数据的结构也有了更深一层次的理解,这为本节课图像的访问学习打下了良好的基础。
教学目标:
1、掌握OpenCV中图像读取、显示和保存所需调用的函数。
2、理解函数使用的原理及逻辑步骤,通过调试运行程序掌握相应的方法。
3、通过Python编程环境,让学生亲身体验图像访问的方法及过程。
**教学重点:**掌握OpenCV中图像读取、显示和保存所需调用的函数。
**教学难点:**通过Python编程环境,让学生亲身体验图像访问的原理、方法及过程。
**教学准备:**Python编程软件、图像素材
教 学 过 程
一、开放导入
通过上节课的学习,大家都知道了图像表示的一些理论基础,即图像都是以数值的形式存储在计算机中,并通过对数值的改变来处理图像。在学习处理图像之前,大家知道我们怎么通过计算机获取图像并将其显示出来的,我们修改处理完了一幅新的图像后又该如何将其保存下来呢?
下面就让我们一起开启畅游图像世界里的第一步吧!
二、核心过程推进
首先,导入cv2模块:
import cv2
1**、读取图像**
使用函数cv2.imread(filepath,flags)读入一副图片
filepath——要读入图片的完整路径,例如“D:\python\1.jpg”或者“D:/python/1.jpg”如果图像文件与Python文件在同一文件夹路径下,可直接输入图像的名称。图像的名称必须包括扩展名,OpenCV目前支持读取bmp、jpg、png、tiff等常用图像格式。
flags——读入图片的标志
cv2.IMREAD_COLOR:默认参数可省略,读入一副彩色图片,忽略alpha通道,即图像透明度会被忽略
cv2.IMREAD_GRAYSCALE:读入灰度图片
cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道
例:以三种不同方式访问素材文件夹中名为“xiaogou.jpg”的图像
color = cv2.imread('xiaogou.jpg',cv2.IMREAD_COLOR)
gray = cv2.imread('xiaogou.jpg',cv2.IMREAD_GRAYSCALE)
unchange = cv2.imread('xiaogou.jpg',cv2.IMREAD_UNCHANGED)在这里插入代码片
**注意:**Python中代码必须保证在英文状态下输入,且区分大小写。

IMREAD_COLOR读取彩色图像 IMREAD_GRAYSCALE读取灰度图像
我们已经学会在任一个文件下读取指定的图像,那么如何将其显现出来呢?
2、显示图像
使用函数cv2.imshow(wname,img)显示图像
第一个参数是显示图像的窗口的名字,第二个参数是要显示的图像(imread读入的图像),窗口大小默认自动调整为图像的大小。
这样我们可以就将上面读取的图像通过多次调用imshow()函数显示出来:
cv2.imshow('color',color)
cv2.imshow('gray',gray)
cv2.imshow('unchange',unchange)
运行素材文件夹下的“图像的显示.py”,会发现出现黑屏并一闪而过,如何显示我们要读取的图像呢?
此时,我们需要调用cv2.waitKey() 函数,它是一个键盘绑定函数。如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。函数等待特定的几毫秒,看是否有键盘输入。
cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。
如果你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删除的窗口名。
· cv2.destroyAllWindow()销毁所有窗口
· cv2.destroyWindow(wname)销毁指定窗口
修改代码,调试运行Python文件,查看显示的效果吧。
思考:
通过上面的学习与尝试,我们已经将读取的图像以窗口的形式显示出来了,但是窗口大小是固定的,不能调节大小,我们该如何使显示的图像窗口大小可调节呢?
这种情况下,我们也可以通过先创建一个窗口,之后再加载图像。这样就可以决定窗口是否可以调整大小。初始设定函数标签是 cv2.WINDOW_AUTOSIZE。
如果把标签改成cv2.WINDOW_NORMAL,你就可以调整窗口大小了。当图像维度太大,或者要添加轨迹条时,调整窗口大小将会很有用。
cv2.namedWindow('color',cv2.WINDOW_AUTOSIZE)
cv2.namedWindow('gray',cv2.WINDOW_NORMAL)
3**、保存图像**
使用函数cv2.imwrite(file,img,num)
第一个参数是要保存的文件名,第二个参数是要保存的图像。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3。
注意:
cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小。
cv2.imwrite(‘1.bmp’,color, [int( cv2.IMWRITE_JPEG_QUALITY), 95])
cv2.imwrite(‘2.bmp’,gray, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
**
开放延伸
**
新建Python程序文件,以最简洁的形式输入代码,读取、显示并保存指定文件中不同名称的图像,实现代码的最优化。
更多推荐




所有评论(0)