pythonイメージのコピー、表示、保存

1712 ワード

画像はマトリクスで、OpenCV for Pythonでは、画像はNumPyの配列です!
画像を読み込むには、まずOpenCVパッケージをインポートします.
import cv2  

画像の読み取りと表示
Pythonでは変数を宣言する必要はありませんので、C++のcv::Matxxxxxも必要ありません.次のようにします.
img=cv2.imread("D:\\lena.jpg")
OpenCVは現在、bmp、jpg、png、tiffなどの一般的なフォーマットの読み取りをサポートしています.詳細についてはOpenCVのリファレンスドキュメントを参照してください.次に、ウィンドウ
cv2.namedWindow("Image")  
が作成され、ウィンドウに画像
cv2.imshow("Image", img)  
が表示され、最後に、
cv2.waitKey (0) 
が追加されなければ、IDLEで実行されるウィンドウは直接応答しない.コマンドラインで実行すると、点滅します.完全なプログラムは:
import cv2 
img = cv2.imread("D:\\clena.jpg") 
cv2.namedWindow("Image") 
cv2.imshow("Image", img) 
cv2.waitKey (0)
cv2.destroyAllWindows()
画像の作成/コピー
新しいOpenCVのインタフェースにはCreateImageインタフェースはありません.すなわちcv 2がない.CreateImageのような関数です.画像を作成するにはnumpyの関数を使用する必要があります(OpenCV-Pythonバインドを使用してnumpyが必須です).次のようにします.
emptyImage = np.zeros(img.shape, np.uint8)  

新しいOpenCV-Pythonバインディングでは、画像はNumPy配列の属性を使用して画像のサイズとチャネル情報を表す.imgを出力場合.shape,得られる(500,375,3),ここではOpenCVで持参したlena.jpgは例です.最後の3はRGB画像であることを示す.
既存の画像をコピーして新しい画像を得ることもできます.
import cv2
import numpy as np
img=cv2.imread("D:\\lena.jpg")
cv2.imshow("shiyan",img)

copyimg=np.zeros(img.shape,np.uint8)
copyimg=img.copy()
grayimg=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("shiyan2",copyimg)
cv2.imshow("shiyan3",grayimg)
cv2.imwrite("./lena.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),5])
cv2.waitKey(0)
cv2.destroyAllWindows()