opencv|树莓派 opencv学习记录DAY-1-库的基本认识和简单函数
首先是接触到了3个常用的python库 :numpy,cv2,matplotlib.pyplot。
在开始前博主因为没装matplotlib.pyplot而报了次错,这里贴一下,安装matplotlib.pyplot的指令
为python3安装pyqt5:sudo apt-get install python3-pyqt5为python3安装matplotlib:
sudo apt-get install python3-matplotlib
分别来了解一下这三个库的作用:
numpy 这个库最大的特点是存储N维数组,放在对象 ndarray中。
ndarray 对象是用于存放同类型元素的多维数组,其中的每个元素在内存中都有相同存储大小的区域。
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
名称 | 描述 |
---|---|
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认) |
subok | 默认返回一个与基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
numpy.zeros(shape, dtype = float, order = 'C')
数据默认是float类型
np.zeros((512,512,3),np.uint8)#建立一个512*512*3的矩阵存放512*512的RGB图像
matplotlib.pyplot Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。可以用来绘制各种静态,动态,交互式的图表。也是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。
plt.imshow(img[:,:,::-1])
今天主要是对这行有所疑问,查阅资料后,得知cv2库获取的图像是BRG格式,而plt.show()输出的是RGB格式,这一行的作用就是对BRG图片向RGB格式的转换。
#冷知识:BRG格式像素的3个值经过翻转得到的正是RGB格式的图片,上一行的作用本质上是对整个图像3个通道像素的翻转。
cv2 这就是opencv处理图像的库了
读取图像
cv.imread()
括号里两个参数
1.要读取的图像
【opencv|树莓派 opencv学习记录DAY-1-库的基本认识和简单函数】2.读取方式的标志
cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。
cv.IMREAD*GRAYSCALE:以灰度模式加载图像
cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式。
可以使用1、0或者-1来替代上面三个标志
显示图像
cv.imshow()
两个参数:
1.显示图像的窗口名称,以字符串类型表示
2.要加载的图像
保存图像
cv.imwrite()
两个参数:
1.文件名
2.要保存的图像
显示例程 先将要展示的图片和py文件放在一个文件中,可以去usr/share/rpd-wallpaper中找图片
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt#img = np.zeros((512,512,3),np.uint8) #这一行可以生成一个512*512的黑色图片
img = cv.imread('islands.jpg',0) #读取图片
cv.imshow('image',img)#显示图片
cv.waitKey(0)#在调用显示图像的API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来plt.imshow(img[:,:,::-1]) #转换格式plt.show()
推荐阅读
- opencv|opencv C++模板匹配的简单实现
- Java|Java OpenCV图像处理之SIFT角点检测详解
- 丰盛派创始人安裘密语录
- 【文魁大脑实用记忆第五期】贤派张丽琼第8次案例一地理记忆有汽泡图
- 韵达基于云原生的业务中台建设 | 实战派
- 浙派名师-丁圆伟
- Python+树莓派制作IoT(物联网)门控设备
- 【思维导图实战派】刻意练习计划“遇见……”|【思维导图实战派】刻意练习计划“遇见……” 1/300 人教版数学五下第三单元《正方体和长方体的认识》
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- 青岛机情派iPhone5s指纹识别修复