Pythonのcv 2モジュール学習(転載)


文書ディレクトリ
  • 一、読み込み画像
  • 二、表示画像
  • 三、保存画像
  • 四、画像操作
  • 1. 画像のスケーリングresize()関数の応用
  • 一、画像を読み込む
    関数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 ,      。        ,     -10      。   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,  0 9           
    
       
       
       
       
    • 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 -51. 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)  
    
    

    参照先:
  • https://www.cnblogs.com/jyxbk/p/7651241.html
  • https://www.cnblogs.com/shizhengwen/p/8719062.html
  • 転載元:https://blog.csdn.net/nanhuaibeian/article/details/100938358
  •