ホームページ > バックエンド開発 > Python チュートリアル > 写真編集ツールとして Python を使ってみたところ、とても使いやすいことが分かりました。 !

写真編集ツールとして Python を使ってみたところ、とても使いやすいことが分かりました。 !

WBOY
リリース: 2023-04-13 22:10:01
転載
1064 人が閲覧しました

今日は、画像処理における 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)
ログイン後にコピー

パラメータの説明は次のとおりです:

  • 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

写真編集ツールとして Python を使ってみたところ、とても使いやすいことが分かりました。 !

画像保存

最後に画像を保存します。ここで使用する関数は cv2.imwrite() で、その構文形式は次のとおりです。

cv2.imwrite(imgname, img)
ログイン後にコピー

パラメータの説明は次のとおりです。

  • imgname: 保存する画像の名前
  • img: 画像の行列形式

サンプルコードは次のとおりです。画像のさまざまな属性

画像のピクセル サイズを知りたい場合がありますが、画像の本質は行列です。たとえば、1024 ピクセル * 960 ピクセルの画像は、行数を意味します。行列は 960 行と列の数は 1024 です。 opencv モジュールで呼び出されるshape() 関数メソッド、コードは次のとおりです:

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 サイトの他の関連記事を参照してください。

ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート