二 读取图片
1 import cv2 as cv 2 img = cv.imread('3.jpg') 3 cv.namedWindow('3',0) #o或cv.WINDOW_NORMAL可以改变窗口大小;不写或cv.WINDOW_AUTOSIZE不可改变 4 cv.imshow('3',img) #name要与namedwindow相同 5 cv.waitKey(0) #0:一直显示;k>0:显示k毫秒 6 cv.destroyAllWindows()
imread(图片地址,图片读取方式):读取图片
第一个参数是图片地址
第二个参数是图片读取方式:默认正常读取,如果为0 则为灰度图 2时也是灰色的,测试了其他是彩色的。
cv.NamedWindow( const char* name, int flags ):创建窗口,其实不写这行代码也可以show出来
第一个参数是窗口名字,设置为中文时.py文件上要加上 # -*- coding=GBK -*-
如果不加会报错,如果加的是 # -*- coding: utf-8 -*- 虽然不会报错,但会是乱码
第二个参数是窗口显示方式,为0或cv.WINDOW_NORMAL:可以改变窗口大小;不写或cv.WINDOW_AUTOSIZE则不可改变大小
第二个参数,int 类型的flags ,窗口的标识,可以填如下的值:
WINDOW_NORMAL设置了这个值,用户便可以改变窗口的大小(没有限制)
INDOW_AUTOSIZE如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小.
WINDOW_OPENGL 如果设置了这个值的话,窗口创建的时候便会支持OpenGL
3. imshow(const string& winname, InputArray mat) 显示图片窗口
第一个参数:窗口名称。如果上面有NamedWindow()函数,这个名称要与它一样,不然会出现两个窗口,一个是NamedWindow的空白窗口,一个是imshow的图片窗口。
第二个参数:要显示的图片。
如果窗口是用CV_WINDOW_AUTOSIZE(默认值)标志创建的,那么显示图像原始大小。否则,将图像进行缩放以适合窗口。而imshow 函数缩放图像,取决于图像的深度
4.waitKey(K) 窗口显示时间,单位:毫秒
k=0: (也可以是小于0的数值)一直显示,键盘上按下一个数字键即会消失
k>0:显示多少毫秒
waitKey(int delay)这个函数接收一个整型值,如果这个值是零,那么函数不会有返回值,如果delay大于0,那么超过delayms后,如果没有按键,那么会返回-1,如果按键那么会返回键盘值。
在某些系统中,返回的键盘值可能不是ASCII编码的,所以通过与运算只取字符最后一个字节。
5. destroyAllWindows():删除建立的全部窗口,释放资源
二
# -*- coding=GBK -*- import cv2 as cv import numpy as np #输出图片属性 def get_image_info(image): #定义一个函数来输出图片的一些属性 print(type(image)) #显示图片类型 numpy类型的数组 #图像矩阵的shape属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵行数,第二个元组表示矩阵列数,第三个元素是3,表示像素值由光的三原色组成 print(image.shape)#h,w,c print(image.size) #图像大小 print(image.dtype) #图像类型 pixel_data = np.array(image) print(pixel_data)#图片矩阵 src = cv.imread("C://1.jpg") cv.namedWindow("哈", cv.WINDOW_NORMAL) cv.imshow("哈", src) get_image_info(src) cv.imwrite("D://2.png",src)#图片另存为,不要存到c盘,要权限的 cv.waitKey(0) cv.destroyAllWindows()