OpenCV学习笔记-基础篇
目录
1、OpenCV下载与安装
OpenCV可以通过终端下载,需要具备编辑器,如anaconda或者pycharm等
pip install OpenCV
OpenCV下载地址:https://opencv.org/opencv-3-4-1/
OpenCV安装教程:https://jingyan.baidu.com/article/22a299b5cad4a49e18376a7b.html
2、OpenCV图像读取与写入
1、图片读取
图片读取
Opencv读取图片需要完成三步
1、引入opencv cv2
2、API读取图片
3、程序暂停
OpenCV读取图片命令:
import cv2 #导入opencv库
cv2.imread(filename, flags=None) # 读取图片
cv2.imshow(winname, mat) #图片命名
cv2.waitKey(0) #完成程序暂停
注:1、cv2.imread(filename,flags=None):
filename:导入图片的地址,最好放于程序目录下
flags:图片类型,0 灰色图片,1 彩色图片
2、cv2.imshow(winname,mat):
winname:窗体名称
mat:图片内容
cv2.waitKey:完成程序后暂停
程序示例:
# 1 引入opencv 2 API读取图片 3 stop程序暂停
import cv2
img=cv2.imread('imageTest.png',1)# 读取图片 ,1、图片名称,2、图片类型 0 灰色图片 1 彩色图片
cv2.imshow('image',img)# 1 name win(窗体名称) 2 img(图片类容)
cv2.waitKey(0)#完成程序暂停
结果:(展示图片)
2、图片写入
写入命令:
cv2.imwrite(filename, img, params=None)
filename:保存图片的命令
img:存储图片内容
程序示例:
#图片写入
import cv2
img=cv2.imread('imageTest.png',1)
#图片的写入 imwrite
cv2.imwrite('image1.jpg',img) # 1 写入图片名称 2 图片数据
结果:
True
如此便保存成功啦
3、图片像素操作
在进行像素操作前,我们要先了解三基色与图片像素
三基色是指红、绿、蓝三种颜色,图片上的色彩皆是由这三种颜色所构成的。
像素:指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的三基色数值,小方格颜色和位置就决定该图像所呈现出来的样子。
以之前读取图片为例,将图片放大后便可以看到此图:
这每一各都是一个像素点,而这些像素点便是由红、绿、蓝三基色安不同比例所构成的,小方格中不同颜色的数值代表该颜色所占比例,最大数值为255。即如果比例为(0,0,255)这便是纯色带。
我们了解完三基色与像素后,便可以进行图片像素简单处理了
程序示例:
import cv2
img=cv2.imread('imageTest.png',1)# imread 读取图片 ,1彩色
(b,g,r) = img[414,260] # 读取定位颜色的像素
# bgr:代表蓝绿红三基色,读取图片中某一点像素的颜色构成部分
print(b,g,r)# bgr 读取像素
#在图片中绘出一条蓝色的竖线
for i in range(1,100):
img[100+i,100]=(255,0,0)
cv2.imshow('image',img)
cv2.waitKey(0)
结果:
在图片小黄花的左边绘画出一条蓝线。
4、图片缩放
图片的缩放也要完成三个步骤:
1、获取图片info信息(高度、宽度、色素)
2、建立空白模板
3、建立新的x轴与y轴
缩放主要是调整原图片中的高与宽信息
简单等比例缩放图片
代码示例:
import cv2
img = cv2.imread('imageTest.png',1)
imgInfo = img.shape#调出维度
print(imgInfo)#打印维度
height = imgInfo[0]
width = imgInfo[1]
mode = imgInfo[2]
# 1 放大 缩小 2 等比列缩放 非等比列缩放
dstHeight = int(height*0.5)
dstWidth = int(width*0.5)
dst = cv2.resize(img,(dstWidth,dstHeight))
cv2.imshow('imgae',dst)
cv2.imshow('imgae1',img)
cv2.waitKey(0)
img.shape:获取图片信息
cv2.resize:缩放图片
cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
src:输入图片;dstze:输出图片大小;fx与fy:宽度与高度缩放比例
interpolation:指定插值的方式,图像缩放之后,要对像素要进行重新计算的,就靠这个参数来指定重新计算像素的方式。
结果:
除此外,还有以矩阵为缩放
程序示例:
# 1、获取info信息,2、建立空白模板,3、创建xy
import cv2
import numpy as np
img = cv2.imread('imageTest.pn