刚刚开始学习opencv,来记录一下自己的学习笔记,也向各位大牛虚心求教
一、图片的基本知识
只要是彩色的图片都有三个颜色通道,即RGB,用三个矩阵来表示。
三个矩阵的同一个坐标位置上的数值描述的是一个方格,数值描述的是在当前通道中的亮度。例如矩阵中81指的是左上角格子红色通道中的亮度,12指的是左上角格子绿色通道中的亮度,75指的是左上角格子蓝色通道中的亮度。
如果是灰度图(黑白图),则只有一个颜色通道,也就是只有一个矩阵,仅仅用来表示亮度。
如果是一个h=500,w=500的彩色图,就对应一个[500,500,3]的矩阵。
二、导入几个常用的包
1 import cv2 2 import matplotlib.pyplot as plt
3 import numpy as np
4 %matplotlib inline
注释:
1、cv2是opencv的缩写
2、matplotlib.pyplot是绘制各类可视化图形的命令子库
3、numpy是基本数值计算的工具包
4、%matplotlib inline 可以让在notebook中图片生成好就展示出来,不需要再调用plt.show()了,更方便显示结果,但是在pycharm中就不能使用
三、读入图片
imread()函数读入,读入的格式是BGR,而不是常用的RGB!!!
1 img=cv2.imread('cat.jpg')
img存储的结果是三维数组,[w,h,3]
注:如果以灰度图读入,则
1 img=cv2.imread('cat.jpg',cv2.IMREAD_GRAYSCALE)
四、显示图片
imshow()函数显示,‘image’表示显示在窗口上方的图片名字,img是图片的变量名
waitKey()函数定义等待时间,如果参数是0,则表示按任意键就退出;如果参数为n(n!=0),则表示n秒后,图片自动消失
1 cv2.imshow('image',img) 2 cv2.waitKey(0) 3 cv2.destroyAllWindows()
五、图片保存
imwrite('给保存后照片取的名字',要保存的图片变量)
1 cv2.imwrite('cat.png',img)