python 3+opencv 3.4(二)--画像基本文

2621 ワード

  • 読み込み画像:image=cv2.imread('1.jpg')、得られたimageはnpのndarrayタイプである.cv2.imread(path, flags) flags:ピクチャをロードする方法を指定します.3つの値があります.
  • cv2.IMREAD_COLOR:カラー画像を読み込むと、画像の透明度は無視され、デフォルトはこの値で、実際の値は1です.
  • cv2.IMREAD_GRAYSCALE:階調モードで1枚の画像を読み出し、実際の値は0
  • である.
  • cv2.IMREAD_UNCHANGED:透明度が無視されないカラー画像をロードします.

  • 空の図を作成する:img=np.zeros((100,100),dtype=np.uint8)
  • 表示画像:cv2.imshow('Image',img) # “Image”
  • 実行時にpythonが応答していないことを表示するには、キーボードトリガイベントを待ってウィンドウを解放するcv2.waitKey(0)を追加する必要があります.
  • キーボードの入力を待って、すべてのウィンドウを閉じます.ここでcv 2.waitKeyのパラメータ0は、任意のキーの入力を待つことを示し、ユーザが任意のキーを入力とcv 2を呼び出す.destroyAllWindows()は、すべての画像ウィンドウを閉じます.
    cv2.waitKey (1000)  
    cv2.destroyAllWindows() #      1s ,      。
    
  • 階調画像とカラー画像との間の相互変換階調をカラーに変換する:img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) imgは2次元マトリクスが3次元マトリクスになる.最初の2次元は位置、3 Dチャネルを表します.img[1,1,0]、第1の値はyまたは行を表し、第2の値はxまたは列を表す.3番目はチャネルを表します.img[0,0]は左上隅の3チャネル[b,g,r]
  • を表す.
  • 画像の保存imwrite
  • cv2.imwrite("./cat2.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 5])  
    cv2.imwrite("./cat3.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])  
    cv2.imwrite("./cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])  
    cv2.imwrite("./cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])  
    

    JPEGでは、画像の品質を表し、0~100の整数で表し、デフォルトは95です.注意、cv 2.IMWRITE_JPEG_QUALITYタイプはLongで、intに変換する必要があります.PNGの場合、3番目のパラメータは圧縮レベルを表します.cv2.IMWRITE_PNG_COMPRESSIONは、0から9まで圧縮レベルが高いほど画像サイズが小さくなります.デフォルトレベルは3です.
  • 画像コピー:tempImage = im.copy()
  • imshow表示の画像サイズの問題で、完全な画像を表示できません:解決方法:
  • cv2.namedWindow("Image", 0) # Image またはcv2.namedWindow("Image", cv2.WINDOW_NORMAL)のような表示の結果は、任意にサイズを調整することができる.デフォルトはcv 2です.WINDOW_AUTOSIZE、大きさは変えられません.
  • cv2.resizeWindow("Image", 800, 400);結果を一定のサイズで表示します.

  • 分割三チャネル法1:b, g, r = cv2.split(img) b,g,rはいずれも二次元行列である.その他の処理ピクチャのライブラリPILチャネルは、(RGB)cv2.imshow("Blue 1", b)の順で階調図として表示される.方法2:redImg = img[:,:,2]
  • 単色図を表示します.image2=np.zeros(image.shape, np.uint8) image2[:,:,2]=image[:,:,2] # 0:b 1:g 2:r
  • 画像の一部をコピーする画像の他の位置
    cv2.namedWindow("Image", cv2.WINDOW_NORMAL) #        Image   
    my_roi=image[0:100,0:100]
    image[300:400,300:400]=my_roi
    cv2.imshow('Image',image)
    cv2.waitKey(0)
    cv2.destroyWindow()
    
  • に移行する.