一、函数
读入图像:
img = cv2.imread('messi5.jpg',0)
显示图像:
cv2.imshow('image',img)
保存图像:
cv2.imwrite('messigray.png',img)
二、例程
例程1
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# 01概述与环境搭建# here put the import lib
import cv2 as cvprint("--------- Python OpenCV Tutorial ---------")
src = cv.imread(r"E:/CODE/VSCODE_PY/OpenCV/images/lena.jpg") # 读入图片
# cv.namedWindow("input image", cv.WINDOW_NORMAL) # 可以调整窗口大小
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) # 创建一个窗口
cv.imshow("input image", src) # 将src放入该创建的窗口
cv.waitKey(0) # 0表示只用键输入结束窗口cv.destroyAllWindows() # 关闭所有窗口
备注
- 使用到的函数是
cv.namedWindow()
。初始设定函数标签是cv.WINDOW_AUTOSIZE
,但是标签改成cv.WINDOW_NORMAL
,可以调整窗口大小。当图像维度太大, 或者要添加轨迹条时,调整窗口大小将会很有用 - cv.waitKey() 是一个键盘绑定函数。
- 需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。
- 特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为-1
- 如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。
- 它也可以被用来检测特定键是否被按下,例如按键a 是否被按下。
例程2
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# cv2.waitkey()函数的使用# here put the import lib
import cv2 as cvprint("--------- Python OpenCV Tutorial ---------")
src = cv.imread(r"E:/CODE/VSCODE_PY/OpenCV/images/lena.jpg")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
keycode = cv.waitKey(1000)
print(keycode)
cv.destroyAllWindows()
图片只显示1秒,在此期间按下a
键,打印97;图片显示期间,没有按下任意键,则打印-1
cv2.destroyAllWindows()
可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用cv2.destroyWindow()
,在括号内输入你想删除的窗口名。
例程3
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# 下面的程序将会加载一个图片,显示图片,按下’s’键保存为灰度图像后退出,或者按下ESC 键退出不保存。# here put the import lib
import cv2 as cvimg = cv.imread(r"E:/CODE/VSCODE_PY/OpenCV/images/lena.jpg")
cv.imshow("input image", img)
keycode = cv.waitKey(0) & 0xff
if keycode == 27:cv.destroyAllWindows()
elif keycode == ord('s'):output_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)cv.imwrite(r"E:/CODE/VSCODE_PY/OpenCV/images/output_img.png", output_img)cv.destroyAllWindows()
输出的灰度图像为:
参考:OpenCV官方教程中文版(For Python)