Python opencv第1个程序:读取、写入图片

1、读取图片

cv2.imread(filename,flags)

第一个参数:图片名

第二个参数:

• cv2.IMREAD_COLOR : 
Loads a color image. Any transparency of image will be neglected. It is the default flag. 
默认参数,读入一副彩色图片,忽略alpha通道

• cv2.IMREAD_GRAYSCALE : 
Loads image in grayscale mode 
读入灰度图片
如:cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE) 读入灰度图片

• cv2.IMREAD_UNCHANGED : 
Loads image as such including alpha channel 
顾名思义,读入完整图片,包括alpha通道

Note: Instead of these three flags, you can simply pass integers 1, 0 or -1 respectively. 
也可以简单以数字1, 0 or -1代替这几个参数,
比如: cv2.imread("上邪.png",0) 代表灰度图片

2、写入图片

cv2.imwrite(filename,img,params)

• 第一个参数:要保存的文件名
• 第二个参数:是要保存的图像。
• 第三个参数(可选):针对特定的格式意义不一样
对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;
对于png ,第三个参数表示的是压缩级别。默认为3.

注意:

  • cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
  • cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小。
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_JPEG_QUALITY), 95])
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

3、程序

import cv2

#读取一张图片并显示出来
img = cv2.imread("上邪.png")
cv2.imshow("Python opencv", img)    #在窗口中显示图片,第一个参数是显示图像的窗口的名字,第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小
k=cv2.waitKey (0)  #如果不添最后一句,在IDLE中执行窗口直接无响应。在命令行中执行的话,则是一闪而过。
if k == 27: #如果按键是ESC
    cv2.destroyAllWindows()  #最后的销毁窗口是一个好的习惯
else: #如果按键是其他键
        #写入一张图片
        cv2.imwrite("test.png",img)
        newimg=cv2.imread("test.png")
        cv2.imshow("I am a new pic!",newimg)
        kk=cv2.waitKey (0)
        if kk==27:
            cv2.destroyAllWindows()
演示图片,第1张是原图,第2张是新生成的

你可能感兴趣的:(Python opencv第1个程序:读取、写入图片)