Python 之 cv2 模块学习(转载)

一、读入图像

使用函数cv2.imread(filepath,flags)读入一副图片

import cv2
img = cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)

 
  
  
  • 1
  • 2
filepath:要读入图片的完整路径
flags:读入图片的标志 
	cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
	cv2.IMREAD_GRAYSCALE:读入灰度图片
	cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道

 
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

二、显示图像

使用函数cv2.imshow(wname,img)显示图像,第一个参数是显示图像的窗口的名字,第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#dv2.destroyWindow(wname)

 
  
  
  • 1
  • 2
  • 3
  • 4
cv2.waitKey顾名思义等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片。
cv2.destroyAllWindow()销毁所有窗口
cv2.destroyWindow(wname)销毁指定窗口

 
  
  
  • 1
  • 2
  • 3

三、保存图像

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

cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
cv2.IMWRITE_PNG_COMPRESSION,09 压缩级别越高图像越小

 
  
  
  • 1
  • 2
cv2.imwrite('1.png',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95])
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

 
  
  
  • 1
  • 2

四、图片操作

1. 图像的缩放 resize()函数的应用

cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)
scr:原图
dsize:输出图像尺寸
fx:沿水平轴的比例因子
fy:沿垂直轴的比例因子
dst - 目标图像。当参数dsize不为0时,dst的大小为size;否则,它的大小需要根据src的大小,参数fx和fy决定。dst的类型(type)和src图像相同
interpolation:插值方法

 
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
interpolation - 插值方法。共有5种:
1. INTER_NEAREST - 最近邻插值法
2. INTER_LINEAR - 双线性插值法(默认)
3. INTER_AREA - 基于局部像素的重采样(resampling using pixel area relation)。对于图像抽取(image decimation)来说,这可能是一个更好的方法。但如果是放大图像时,它和最近邻法的效果类似。
4. INTER_CUBIC - 基于4x4像素邻域的3次插值法
5. INTER_LANCZOS4 - 基于8x8像素邻域的Lanczos插值

 
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例:

""" 
重设图像大小。 
缩小图像,比例为(0.3, 0.5) 
放大图像,比例为(1.6, 1.2) 
"""  
import cv2  
import os  
  
if __name__ == '__main__':  
    img = cv2.imread("lena.jpg", -1)  
    if img == None:  
        print "Error: could not load image"  
        os._exit(0)  
      
    height, width = img.shape[:2]  
  
    # 缩小图像  
    size = (int(width*0.3), int(height*0.5))  
    shrink = cv2.resize(img, size, interpolation=cv2.INTER_AREA)  
      
    # 放大图像  
    fx = 1.6  
    fy = 1.2  
    enlarge = cv2.resize(img, (0, 0), fx=fx, fy=fy, interpolation=cv2.INTER_CUBIC)  
  
    # 显示  
    cv2.imshow("src", img)  
    cv2.imshow("shrink", shrink)  
    cv2.imshow("enlarge", enlarge)  
  
    cv2.waitKey(0)  

参考:

  1. https://www.cnblogs.com/jyxbk/p/7651241.html
  2. https://www.cnblogs.com/shizhengwen/p/8719062.html
  3. 转载来源:https://blog.csdn.net/nanhuaibeian/article/details/100938358
                                </div>

Guess you like

Origin blog.csdn.net/qq_34917728/article/details/105546244