今日は、画像処理における Python の具体的な応用例を紹介します。画像処理なので、opencv モジュールについて触れなければなりません。このモジュールは、コンピューター ビジョンや機械学習に関連する多くのアルゴリズムをサポートしています。そして応用分野は拡大しています。日ごとに大きく分けて以下のような分野があります。
もちろん、今回の編集者はそのような高度な内容をカバーするつもりはありません。今日は、最も基本的な opencv モジュールと、画像の基礎、操作を始めましょう。
私たちは皆、pip コマンドを使用してモジュールをインストールします。
pip install opencv-python pip install opencv-contrib-python
線形代数を学んだ人にとって、行列行列には馴染みがありません。画像は本質的に行列です。グレースケール画像は通常の行列ですが、カラー画像は多次元行列です。画像に対する操作は、自然に行列に対する操作に変換できます。
最初に、cv2.imread() メソッドを呼び出して画像を読み取ります。その構文形式は次のとおりです。
cv2.imread(filename, flag=1)
フラグ パラメーターが使用されます。画像を読み取る形式を設定します。デフォルトは 1 で、RGB 3 チャネル形式で読み取ることを意味します。0 に設定すると、グレースケール 1 チャネル形式で読み取ることを意味します。
import cv2 import numpy as np img=cv2.imread('1.jpg', 0)
画像を読み取ったら、それを表示したいと思います。ここで使用する関数メソッドは cv2.imshow() で、その構文形式は次のとおりです。
cv2.imshow(name, img)
パラメータの説明は次のとおりです:
us 上記で読み取った画像を表示してみます。コードは次のとおりです。
cv2.imshow("grey_img", img) ## 如果使用了cv2.imshow()函数,下面一定要跟着一个摧毁窗口的函数 cv2.destroyAllWindows()
上記のコードを実行すると、すぐに画像が表示されることがわかりますが、画像がどのように見えるかを明確に確認する前に直接閉じられてしまいます。 .imshow() 関数メソッドには遅延効果がありません。遅延関数を追加します。コードは次のとおりです。
import cv2 import numpy as np img = cv2.imread('1.jpg') cv2.imshow("grey_img", img) cv2.waitKey(0) cv2.destroyAllWindows()
output
最後に画像を保存します。ここで使用する関数は cv2.imwrite() で、その構文形式は次のとおりです。
cv2.imwrite(imgname, img)
パラメータの説明は次のとおりです。
サンプルコードは次のとおりです。画像のさまざまな属性
import cv2 import numpy as np img = cv2.imread('1.jpg') cv2.imshow("grey_img", img) cv2.waitKey(0) cv2.imwrite('1.png', img) cv2.destroyAllWindows()
output
import cv2 img = cv2.imread('1.jpg') print(img.shape[0]) # 行数 print(img.shape[1]) # 列数 print(img.shape[2]) # 通道数
画像のピクセルが 340*380 で、チャネル数が 3 であることを確認してください。グレースケール画像の場合は、画像のプロパティを見てみましょう。コードは次のとおりです:
308 340 3
output
img = cv2.imread('1_grey.png', 0) print(img.shape)
グレースケール画像の場合、チャネル数は表示されず、行と列の数のみが表示されることがわかります。
画像の基本操作
(308, 340)
output
以上が写真編集ツールとして Python を使ってみたところ、とても使いやすいことが分かりました。 !の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。