python-openCv画像処理

2966 ワード

一、OpenCvの紹介
OpenCVはBSDベースのライセンスですLinux、Windows、Android、Mac OSオペレーティングシステムで実行可能なプラットフォーム間コンピュータビジュアルライブラリ.軽量レベルで効率的.一連のC関数と少量のC++クラスで構成され、Python、Ruby、MATLABなどの言語のインタフェースを提供し、画像処理とコンピュータビジュアルに関する多くの汎用アルゴリズムを実現した.
OpenCv公式サイトhttps://opencv.org/
二、OpenCvはpythonで使用する
1、導入:import cv 2
2、画像を読み取る:cv 2.imread
パラメータ1:画像のファイル名現在のフォルダの下に画像を置く場合、直接ファイル名を書けばいい、例えば'lena.jpg'でなければ絶対パスを与える必要があります.例えば、'D:OpenCVSampleslena.jpg′パラメータ2:読み込み方式、省略はデフォルト値cv 2を採用する.IMREAD_COLOR:カラー図、デフォルト値(1)cv 2.IMREAD_GRAYSCALE:階調図(0)cv 2.IMREAD_UNCHANGED:透明チャネルを含むカラーマップ(-1)
3、展示画像:cv 2.imshow('title', img)
4、写真を保存する:cv 2.imwrite(path,img)#pathパスの下に画像を保存
5、閾値分割:例は以下の通り
def do_threshold(self,img):
        #◦  1:      (      )
        #◦  2:    ,   255
        #◦  3:          ◦ADAPTIVE_THRESH_MEAN_C:       
        #                         ◦ADAPTIVE_THRESH_GAUSSIAN_C:        ,       
        #◦  4:    (      5   )cv2.THRESH_BINARY(  )、
        #                                   cv2.THRESH_BINARY_INV、
        #                                   cv2.THRESH_TRUNC、
        #                                   cv2.THRESH_TOZERO、
        #                                   cv2.THRESH_TOZERO_INV
        #◦  5:      , 11  11*11   
        #◦  6:                    
        #image_mean=cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 35, 4)
        #cv2.imshow("image_mean", image_mean) #    
        #cv2.waitKey(0)
        #blur = cv2.GaussianBlur(img, (5, 5), 0)
        image_gaussian=cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 35, 4)
        cv2.imshow("image_gaussian", image_gaussian) #    
        cv2.waitKey(0)
        cv2.imshow("image_gaussian", ~image_gaussian) #    
        cv2.waitKey(0)
        
        #        ,   Otsu   
        #blur = cv2.GaussianBlur(img, (5, 5), 0)
        ret3, otsu = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
        cv2.imshow("image_otsu", otsu) #    
        cv2.waitKey(0)
        
        return image_gaussian

6、画像の拡大・縮小:例は以下の通り
def img_resize(self,img):
        #       , x,y      
        res = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
        cv2.imshow("image_resize", res) #    
        cv2.waitKey(0)
        return res

7、画像の回転:例は以下の通り
#    
    #   :img    
    #   :du    ( :   , :   )
    #   :    
    def xuanZHuan_img(self,img,du,resize):
        #   、 
        rows, cols = img.shape
        #      
        #◦  1:       
        #◦  2:    ( :   , :   )
        #◦  3:    ,0.5      
        M = cv2.getRotationMatrix2D((cols / 2, rows / 2), du, resize)
        #    
        dst = cv2.warpAffine(img, M, (cols, rows))

        cv2.imshow('rotation', dst)
        cv2.waitKey(0)

三、上記のような画像の処理方法を望んで、私と同じ初心者に参考にすることができます.