Python基本チュートリアル:cv2と画像の読み込み、例の表示と保存

@この記事は公開番号から来ています:csdn2299、公開番号プログラマアカデミーに注目したい
この記事は、OpenCV 2コンピュータビジョンアプリケーションプログラミングクックブックの最初の記事です。ノートでは、各章のコードはPython言語で書き直されます。

PythonOpenCVの設定はここでは紹介しません。

OpenCV for PythonがNumPyを介してバインドされていることに注意してください。そのため、NumPy関連の知識を習得する必要があります。

画像は行列です。OpenCVfor Pythonでは、画像はNumPy!の配列です。

画像を読みたい場合は、まずOpenCVパッケージをインポートする必要があります。メソッドは次のとおりです。

import cv2

画像を読み取って表示する

Pythonでは変数を宣言する必要がないため、C ++ではcv :: Mat xxxxxは必要ありません。このように:

img = cv2.imread("D:\cat.jpg")

OpenCVは現在、bmp、jpg、png、tiffなどの一般的な形式の読み取りをサポートしています。詳細については、OpenCVリファレンスドキュメントを参照してください。

次にウィンドウを作成します

cv2.namedWindow("Image")

次に、ウィンドウに画像を表示します

cv2.imshow("Image", img)

最後に、文を追加します。

cv2.waitKey (0)

最後の文を追加しない場合、IDLEの実行ウィンドウは直接応答しません。コマンドラインで実行すると、フラッシュになります。

完全な手順は次のとおりです。

import cv2 
  
img = cv2.imread("D:\\cat.jpg") 
cv2.namedWindow("Image") 
cv2.imshow("Image", img) 
cv2.waitKey (0) 
cv2.destroyAllWindows()

ようやく窓を開けるのはいい癖です!

画像の作成/コピー

新しいOpenCVインターフェイスにはCreateImageインターフェイスはありません。cv2.CreateImageのような関数はありません。画像を作成する場合は、numpy関数を使用する必要があります(現在はOpenCV-Pythonバインディングを使用しているため、numpyが必要です)。次のように:

emptyImage = np.zeros(img.shape, np.uint8)

新しいOpenCV-Pythonバインディングでは、画像はNumPy配列の属性を使用して画像サイズとチャネル情報を表します。img.shapeを出力すると、(500、375、3)が得られます。OpenCVに付属するcat.jpgの例を次に示します。最後の3つは、これがRGBイメージであることを示します。

元の画像をコピーして新しい画像を取得することもできます。

emptyImage2 = img.copy();

問題を恐れていない場合は、cvtColorを使用して元の画像のコピーを取得することもできます。

emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
#emptyImage3[...]=0

次のemptyImage3 […] = 0は、空白の黒い画像に変換します。

画像を保存

画像の保存は簡単です。cv2.imwriteを使用するだけです。

cv2.imwrite(“ D:\ cat2.jpg”、img)

最初のパラメーターは保存されたパスとファイル名で、2番目のパラメーターはイメージマトリックスです。このうち、imwrite()には、次のようなオプションの3番目のパラメーターがあります。

cv2.imwrite(“ D:\ cat2.jpg”、img、[int(cv2.IMWRITE_JPEG_QUALITY)、5])

3番目のパラメーターは特定の形式用です。JPEGの場合、これは画像の品質を表し、0〜100の整数で表されます。デフォルトは95です。cv2.IMWRITE_JPEG_QUALITYのタイプはLongであり、intに変換する必要があることに注意してください。以下は、異なる品質で保存された2つの画像ですここに画像の説明を挿入
。PNGの場合、3番目のパラメーターは圧縮レベルを示します。cv2.IMWRITE_PNG_COMPRESSION、0〜9、圧縮レベルが高いほど、画像サイズが小さくなります。デフォルトのレベルは3です。

cv2.imwrite("./cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0]) 
cv2.imwrite("./cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

保存される画像のサイズは次のとおりです。ここに画像の説明を挿入
サポートされている画像もあり、通常はあまり使用されません。

完全なコードは次のとおりです。

import cv2 
import numpy as np 
  
img = cv2.imread("./cat.jpg") 
emptyImage = np.zeros(img.shape, np.uint8) 
  
emptyImage2 = img.copy() 
  
emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
#emptyImage3[...]=0 
  
cv2.imshow("EmptyImage", emptyImage) 
cv2.imshow("Image", img) 
cv2.imshow("EmptyImage2", emptyImage2) 
cv2.imshow("EmptyImage3", emptyImage3) 
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]) 
cv2.waitKey (0) 
cv2.destroyAllWindows()

読んでいただきありがとうございます
。大学でpythonを学ぶことを選んだとき、コンピュータの基礎がおかしいことに気付きました。学業資格はあり
ませんでした。これは何もする必要はありません。それを補うことしかできません。道は、Pythonのコア知識を学び続け、コンピューターの基礎の詳細な研究を整理し、平凡になりたくない場合は、コーディングに参加して成長を続けてください!
実は、ここには技術だけでなく、それ以外のものもあり、例えば「絹糸」というよりも、どうやってプログラマーとして絶妙な存在になるのか、プログラマー自体が高貴な存在ですね。[参加するにはクリックしてください]自分らしくなりたい、高貴な人になりたい、是非!

50件の元の記事を公開 21件の賞賛 20,000回以上の閲覧

おすすめ

転載: blog.csdn.net/chengxun03/article/details/105545096