【树莓派学习】五、树莓派OpenCV的照片基本操作

一、重要函数介绍

1、读取图像: cv2.imread()

使用函数 cv2.imread() 读入图像。

参数1:图像名字(图像和程序在同一文件夹下) 或 路径+名字(图像和路径不在同一文件夹下)
参数2:告诉函数应该如何读取这幅图片。

参数2的另一些取值:

  • cv2.IMREAD_COLOR: 读入一副彩色图像。 图像的透明度会被忽略, 这是默认参数。或者该参数也可以直接写成0。
  • cv2.IMREAD_GRAYSCALE: 以灰度模式读入图像。或者该参数也可以直接写成1。
  • cv2.IMREAD_UNCHANGED: 读入一幅图像,并且包括图像的 alpha 通道。或者该参数也可以直接写成2。

需要注意的是:就算图像的路径是错的, OpenCV 也不会提醒你的, 但是当你使用命令 print img 时得到的结果是 None。

2、 显示图像: cv2.imshow()

使用函数 cv2.imshow() 显示图像, 窗口会自动调整为图像大小。

参数1:窗口名字
参数2:图像名字

可以创建多个窗口, 只要你喜欢, 但是必须给他们不同的名字。

cv2.namedWindow():可以先创建一个窗口, 之后再加载图像。 这种情况下, 你可以决定窗口是否可以调整大小。

初始设定函数标签是 cv2.WINDOW_AUTOSIZE,但是如果你把标签改成 cv2.WINDOW_NORMAL, 你就可以调整窗口大小了。 当图像维度太大, 或者要添加轨迹条时, 调整窗口大小将会很有用。

3、关闭窗口

新建窗口之后, 可以通过检测到指定按键来关闭窗口。

3.1 按键检测

cv2.waitKey()是一个键盘绑定函数,需要指出的是它的时间尺度是毫秒级。

函数等待特定的几毫秒, 看是否有键盘输入。 特定的几毫秒之内, 如果按下任意键, 这个函数会返回按键的 ASCII 码值, 程序将会继续运行。 如果没有键盘输入, 返回值为 -1, 如果我们设置这个函数的参数为 0, 那它将会无限期的等待键盘输入。

3.2删除窗口

cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。

cv2.destroyWindow(), 在括号内输入你想删除的特定窗口名。

4、保存图像

cv2.imwrite() 来保存一个图像。

首先需要一个文件名, 之后才是你要保存的图像。

二、实际案例

我们把如下的彩色图片打开并显示灰度图, 并当按下 s 按键时, 把灰度图保存到照片 grayimage.jpg。

1、 建立opencv的python脚本,并命名为test.py,输入程序

# -*- coding: utf-8 -*-
import numpy as np
import cv2

img = cv2.imread('xiaor.jpg',0)	#0:gray 灰度;1或者不写,是全彩的
#img = cv2.imread('xiaor.jpg')#全部信息

cv2.imshow('image',img)	#把读取到img内的图像数据显示到名为image的窗口中
k = cv2.waitKey(0)&0xFF	#等待按键
if k == 27:   #	wait for ESC
	cv2.destroyAllWindows()	
elif k == ord('s'):	#wait for KEY 's' to save and exit  
	cv2.imwrite('grayimage.jpg',img)
	cv2.destroyAllWindows()

2、放置图片1.png到改文件夹下

在这里插入图片描述
在这里插入图片描述

3、在终端输入以下命令,运行程序。

python test.py

4、运行结果如下,按下s保存图像为:grayimage.png
在这里插入图片描述

在这里插入图片描述

发布了653 篇原创文章 · 获赞 1016 · 访问量 73万+

猜你喜欢

转载自blog.csdn.net/ReCclay/article/details/103664376