二 读取图片

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()

 

posted @ 2018-10-23 20:16  Austin_anheqiao  阅读(172)  评论(0编辑  收藏  举报