python opencv 保存图片_【python-opencv 】一、图像的加载与保存

1.准备工作

没学过Python...

然后再cmd下输入  pip install opencv-python

还装了个IDE   PyCharm

2.读取和显示一张图片

importcv2 as cv

img= cv.imread("1.png")#读取图片 这里1.png和python文件在同一目录下

cv.imshow("1",img)#显示图片  ""里面是窗口的名称

3.查阅的函数资料

imread函数

imread为image read的缩写,即图像读取的意思

【函数原型】cv2.imread(path_of_image, intflag)

参数1:需要读入图像的路径

参数2:标志以什么形式读入图像,可以选择一下方式:

cv2.IMREAD_COLOR【1】: 加载彩色图像。任何图像的透明度都将被忽略。它是默认标志

cv2.IMREAD_GRAYSCALE【0】: 以灰度模式加载图像

cv2.IMREAD_UNCHANGED【-1】: 保留读取图片原有的颜色通道

inshow函数

【函数原型】cv2.imshow(windows_name, image)

参数1: 窗口名称(字符串)

参数2: 图像对象,类型是numpy中的ndarray类型,注:这里可以通过imutils模块改变图像显示大小

cvNamedWindow函数

该函数为开放计算机视觉(OpenCV)库库函数,用来创建窗口显示图像

cv2.namedWindow(‘窗口标题’,默认参数)

窗口大小可以改变:cv2.namedWindow("image",cv2.WINDOW_NORMAL)   或者  cv2.namedWindow('image',cv2.WINDOW_GUI_NORMAL)

窗口大小不可以改变:cv2.namedWindow("image",cv2.WINDOW_AUTOSIZE)

窗口大小自适应比例:cv2.namedWindow("image",cv2.WINDOW_FREERATIO)

窗口大小保持比例:cv2.namedWindow("image",cv2.WINDOW_KEEPRATIO)

显示色彩变成暗色:cv2.namedWindow('image',cv2.WINDOW_GUI_EXPANDED)

cv2.imshow(‘窗口标题’,image),如果前面没有cv2.namedWindow,就自动先执行一个cv2.namedWindow()

关闭特定窗口:void destroyWindow(const string& winname)

关闭所有HighGUI窗口:void destroyAllWindows()

cvwaitKey函数

函数的功能是不断刷新图像,频率时间为delay,单位为ms

它显示指定的图像。毫秒。否则,它就不会显示图像。例如,waitKey(0)将无限地显示窗口,直到任何按键按下(它适合于图像显示)

waitKey(25)将显示一个框架,25毫秒后,显示将自动关闭  (如果把它放到一个循环中去读视频,它将显示视频帧逐帧)

1.waitKey()与waitKey(0),都代表无限等待,waitKey函数的默认参数就是int delay = 0,故这俩形式本质是一样的。

2.waitKey(n),等待n毫秒后,关闭显示的窗口。

cvCvtColor是Opencv里的颜色空间转换函数

4.代码

1 importcv2 as cv2 importnumpy as np3

4

5 defget_image_info(image):6 print(type(image))7 print(image.shape)8 print(image.size) #高、宽、通道数

9 print(image.dtype) #字节位数占多数 高*宽*通道数

10 pixel_data =np.array(image)11 print(pixel_data)12

13

14 defvideo_demo():15 capture = cv.VideoCapture(0) #既支持视频文件的读取,也支持从摄像机中视频的读取

16 whileTrue:17 ret, frame =capture.read()18 #ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False,后面的frame该帧图像的三维矩阵BGR形式

19 #frame = cv.flip(frame, 1) #左右镜像

20 cv.namedWindow("video", cv.WINDOW_AUTOSIZE)21 cv.imshow("video", frame)22 c = cv.waitKey(50) #如果50ms内有按键 有返回按键的ASCII码值

23 if c == 27: #ESC键的ASCII码十进制表示为27

24 break

25

26

27 src = cv.imread("1.png")28 cv.namedWindow("image", cv.WINDOW_NORMAL)29 cv.imshow("image", src) #显示读进来的图片

30 get_image_info(src)31 gray =cv.cvtColor(src, cv.COLOR_BGR2GRAY)32 cv.imwrite("1_gray.png", gray) #保存修改后的图片

33 video_demo()34 cv.waitKey(0)35 cv.destroyAllWindows()

5.效果

显示的图片

窗口大小是可改变的

图片在计算机看来是一个结构化存储的数据信息

图像属性:通道数目、高和宽、像素数据、图像类型

你可能感兴趣的:(python,opencv,保存图片)