20行のコードはpythonを使って証明書の写真を下の色に換える方法の例を教えます。


1.画像ソース
この写真は百度の写真から来ています。著作権を侵害したら削除してください。写真は知識の交流だけに使います。
在这里插入图片描述
2.画像を読み込み、表示する
  • imread():画像の読み取り;
  • imshow():展示画像;
  • waitkey():ウィンドウをセットして待って、もし設定しないならば、ウィンドウはさっと通り過ぎます。
  • 
    import cv2
    import numpy as np
    #     
    img=cv2.imread('girl.jpg')
    
    #     
    cv2.imshow('img',img)
    
    #        ,0      
    cv2.waitKey(0)
    
    効果は以下の通りです
    在这里插入图片描述
    3.画像の拡大縮小
    resize():画像のスケーリングでは、fxとfyはスケーリング率を表し、0.5は以前の半分にスケーリングされます。
    
    import cv2
    import numpy as np
    #     
    img=cv2.imread('girl.jpg')
    
    #     
    img = cv2.resize(img,None,fx=0.5,fy=0.5)
    rows,cols,channels = img.shape
    print(rows,cols,channels)
    
    #     
    cv2.imshow('img',img)
    
    #        ,0      
    cv2.waitKey(0)
    
    結果は以下の通りです
    在这里插入图片描述
    4.画像をグレースケールに変換する
    三色写真はRGBの三つのカラーチャンネルがあり、腐食と膨張の操作ができません。これはカラー画像をhsv階調画像に変換した後、腐食と膨張の操作を行う必要があります。
    cv 2.cvtColor(img,cv 2.COLOR_)BGR 2 HSV)は、カラー画像をhsv階調画像に変換することができる。
    
    import cv2
    import numpy as np
    #     
    img=cv2.imread('girl.jpg')
    
    #     
    img = cv2.resize(img,None,fx=0.5,fy=0.5)
    rows,cols,channels = img.shape
    print(rows,cols,channels)
    cv2.imshow('img',img)
    
    #          
    hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    
    #     
    cv2.imshow('hsv',hsv)
    
    #        ,0      
    cv2.waitKey(0)
    
    結果は以下の通りです
    在这里插入图片描述
    5.画像を二値化する
    二値化処理は、画像を白黒画像に変換するためである。二値化は1が男性、2が女性を表すのと似ていますが、画像の処理に対しても最小値と最大値をカスタマイズしたいです。ここではそれぞれパワーを使います。blueとuper_ブルー表示
  • lower_blue=np.array([90,70,70])
  • up_blue=np.array([110,255,255])
  • inRange(hsv、lower_)ブルー、uper_blue)画像を二値化する。
  • 
    import cv2
    import numpy as np
    #     
    img=cv2.imread('girl.jpg')
    
    #     
    img = cv2.resize(img,None,fx=0.5,fy=0.5)
    rows,cols,channels = img.shape
    print(rows,cols,channels)
    cv2.imshow('img',img)
    
    #         
    hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    cv2.imshow('hsv',hsv)
    
    #         
    lower_blue = np.array([90,70,70])
    upper_blue = np.array([110,255,255])
    mask = cv2.inRange(hsv, lower_blue, upper_blue)
    
    
    #     
    cv2.imshow('mask',mask)
    
    #        ,0      
    cv2.waitKey(0)
    
    結果は以下の通りです
    在这里插入图片描述
    短所:私達は第三章の写真を見ていますが、黒い領域には時々ノイズ(白点)が発生します。ここでは明らかではないかもしれません。一部の写真は明らかに示しています。これは私達が腐食や膨張を行う必要があります。
    6.イメージの腐食と膨張
    上の画像を二値化した後、いくつかのノイズが発生しました。腐食や膨張で画像の処理ができます。どの処理の効果がいいかを観察します。
  • エロイド(mark,None,iteration=1)は腐食操作を行う。
  • dilate(erode,None,iterations=1)は膨張操作を行う。
  • 
    import cv2
    import numpy as np
    #     
    img=cv2.imread('girl.jpg')
    
    #     
    img = cv2.resize(img,None,fx=0.5,fy=0.5)
    rows,cols,channels = img.shape
    print(rows,cols,channels)
    cv2.imshow('img',img)
    
    #         
    hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    cv2.imshow('hsv',hsv)
    
    #         
    lower_blue=np.array([90,70,70])
    upper_blue=np.array([110,255,255])
    mask = cv2.inRange(hsv, lower_blue, upper_blue)
    
    
    #    
    erode=cv2.erode(mask,None,iterations=1)
    cv2.imshow('erode',erode)
    
    dilate=cv2.dilate(erode,None,iterations=1)
    cv2.imshow('dilate',dilate)
    
    
    #        ,0      
    cv2.waitKey(0)
    
    結果は以下の通りです
    在这里插入图片描述
    上の図を見てください。この写真に対しては、腐食や膨張に関係なく、良好なノイズ除去操作が行われています。腐食後の画像を使ってもいいです。膨張した写真を使ってもいいです。
    7.各ピクセルポイントを巡回して色を入れ替えます。
    画像は各ピクセルポイントから構成されています。私たちは腐食した後、画像を得るための白い下地のピクセルポイントを探して、元の図の中の対応する位置のピクセルポイントを赤に変えます。
    
    import cv2
    import numpy as np
    #     
    img=cv2.imread('girl.jpg')
    
    #     
    img = cv2.resize(img,None,fx=0.5,fy=0.5)
    rows,cols,channels = img.shape
    print(rows,cols,channels)
    cv2.imshow('img',img)
    
    #         
    hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    cv2.imshow('hsv',hsv)
    
    #         
    lower_blue=np.array([90,70,70])
    upper_blue=np.array([110,255,255])
    mask = cv2.inRange(hsv, lower_blue, upper_blue)
    
    
    #    
    erode=cv2.erode(mask,None,iterations=1)
    cv2.imshow('erode',erode)
    
    dilate=cv2.dilate(erode,None,iterations=1)
    cv2.imshow('dilate',dilate)
    
    #    
    for i in range(rows):
     for j in range(cols):
      if erode[i,j]==255: #     255      ,             ,     
       img[i,j]=(0,0,255) #       , BGR  ,  RGB  
    cv2.imshow('res',img)
    
    #        ,0      
    cv2.waitKey(0)
    
    効果は以下の通りです
    在这里插入图片描述
    ここで20行のコードについてpythonを使って証明書の写真を下の色に変えていく方法例を教えます。この文章を紹介します。python証明書の写真を下の色に変えてください。以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。