事前准备
使用库: opencv,可以用pip install opencv-python来安装(注意!不是pip install opencv!!!) numpy(这个本节不用,但是以后经常要用到)
从零开始
我们先来讲从图片的导入和将灰度图另存到另一个地方
概念
彩色图:图片每个像素都由Blue,Green,Red三种通过颜色的搭配获得,每个颜色的取值都在[0-255]内,如(0,255,0)就是纯绿色 灰度图:图片每个像素只有一个灰度值决定,取值在[0-255],当灰度值为0时为黑色,为255时为白色
新的函数,用小本本记下来:
1.cv2.imread(文件名,标记)读入图像
#标记常用的有以下两种:
cv2.IMREAD_COLOR:读入彩色图像(等价于cv2.imread中标记为1或者不填)
cv2.IMREAD_GRAYSCALE:以灰度模式读入图像(等价于cv2.imread中标记为0)
2.cv2.imshow(窗口名称,图片)显示图像
3.cv2.waitKey(time)等待键盘输入,time以毫秒为单位
4.cv2.destroyAllWindows()删除任何我们建立的所有窗口
5.cv2.imwrite(保存到哪的文件名,img)保存img
如:cv2.imwrite('messigray.png',img)第一个参数和文件操作一致,都是相对地址(也可以绝对地址)
6.cv2.namedWindows(窗口的名字,窗口的大小)
如:cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.namedWindow('image',cv2.AUTO_SIZE) #第二个参数默认的就是cv2.AUTO_SIZE
这样就可以控制窗口的大小,避免因为加载的图像太大,然后窗口也太大的问题
练习
练习加载一个灰度图,显示图片,按下‘s’键保存后退出,或者按下ESC键退出不保存
import numpy as np
import cv2
img = cv2.imread('45.jpg',0) //以灰度图的形式读取
cv2.imshow('image',img) //将读取到的img展示到名字叫image的窗口上
k = cv2.waitKey(0) //如果time为0的话会一直等待你的键盘命令
if k==27: //ESC的ASCII码
cv2.destroyAllWindows() #wait for ESC key to exit
elif k == ord('s'): //如果k为s的ASCII码的话
cv2.imwrite('46.png',img) //保存图片
cv2.destoryAllWindows() //保存图片,退出
如果用的是64位系统,需将key=cv2.waitKey(0)改为k=cv2.waitKey(0)&0xFF !!(不用的话其实我这边也可以使用,但是官方的文档上这么写,我也在这里注释下) (这个系列每周不定期数持续更新,谢谢大家支持!)