树莓派学习笔记(8)—— OpenCV环境搭建和基本操作

一、OpenCV环境搭建

运行下面两条命令安装OpenCV。

sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

然后输入下面指令,测试一下是否安装成功。

python
import cv2
cv2.__version__

若正常出现下图所示的版本号,则表示安装成功!
树莓派学习笔记(8)—— OpenCV环境搭建和基本操作_第1张图片
最后退出python环境,可以输入exit(),或者直接快捷键ctrl+D

二、照片灰度化

保存下面图片到桌面,修改文件名为xiaor.jpg
树莓派学习笔记(8)—— OpenCV环境搭建和基本操作_第2张图片

在桌面新建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()

在终端中输入:

cd Desktop/
python test.py

运行结果如下,按下键盘s键可以保存图片为grayimage.jpg并关闭窗口(程序中是这样写的)。

注意是在灰度图片窗口中按s,不是在终端输入s

树莓派学习笔记(8)—— OpenCV环境搭建和基本操作_第3张图片

三、函数简介

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

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

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

参数2的另一些取值:
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代。
cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代。
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可用-1作为实参替代。

alpha通道,又称A通道,是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度复信息,定义透明、不透明和半透明区域,其中黑表示全透明,白表示不透明,灰表示半透明

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

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

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

【参数1】窗口名字
【参数2】图像名字

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

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

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

3. 按键检测:cv2.waitKey()

【参数】等待时间(单位ms)

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

4. 关闭窗口

cv2.destroyAllWindows() :无入参。可以轻易删除所有我们建立的窗口。

cv2.destroyWindow() :参数为你想删除的特定窗口名。

5. 保存图像:cv2.imwrite()

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

【参数1】文件名
【参数2】要保存的图像的变量名。

你可能感兴趣的:(树莓派学习笔记(8)—— OpenCV环境搭建和基本操作)