Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで画像の種類を確認しますか?


このセクションでは、私たちが持っている画像ファイルの種類を見ていきます。したがって、ディレクトリに数百の画像ファイルがあり、すべてのjgeg(または特定の画像ファイルタイプ)ファイルタイプを取得したい状況を考えてみます。これはすべて、Pythonを使用してプログラムで実行します。

画像のタイプを判別するためのPythonのprovidelibraryは、そのようなライブラリではimghdrです。

python imghdrパッケージは、ファイルまたはバイトストリームに含まれる画像のタイプを決定します。

インストール

Python 3.6以降を使用している場合、imghdrモジュールが標準パッケージであり、Pythonがインストールされている可能性が非常に高くなります。

マシンにimghdrをインストールするには、コマンドターミナルで以下のコマンドを実行するだけです。

pip install imghdr

インストールが正常に完了したら、imghdrが正しくインストールされていることを確認するか、Pythonシェルにモジュールをインポートするだけではありません。

>>> import imghdr
>>>

エラーが発生しない場合は、imghdrがマシンにインストールされていることを意味します。

構文

imghdrパッケージは、次の関数を定義します。

imghdr.what(filename[, h])

場所

  • ファイル名 :filenameで指定されたファイルに含まれる画像データをテストし、画像タイプを説明する文字列を返します。

  • h :オプションです。hが存在する場合、ファイル名は無視され、hにはテストするバイトストリームが含まれていると見なされます。

以下は、imghdrパッケージを使用して認識される許可された画像タイプです。


画像形式
'rgb'
SGIImgLibファイル
'gif'
GIF87aおよび89aファイル
'pbm'
ポータブルビットマップファイル
'pgm'
ポータブルグレイマップファイル
'ppm'
ポータブルPixmapファイル
'tiff'
TIFFファイル
'rast'
サンラスターファイル
'xbm'
Xビットマップファイル
'jpeg'
JFIFまたはExif形式のJPEGデータ
'bmp'
BMPファイル
'png'
ポータブルネットワークグラフィックス

ただし、この変数に追加することで、imghdrパッケージが認識できるファイルタイプのリストを拡張できます。

imghdr.tests

この関数には、個々のテストを実行する関数のリストが含まれています。各関数は、バイトストリームと開いているファイルのようなオブジェクトの2つの引数を取ります。ただし、what()がバイトストリームで呼び出されると、ファイルのようなオブジェクトはNoneになります。

テスト関数は画像タイプを文字列として返します。失敗した場合はNoneを返します。

>>> import imghdr
>>> imghdr.what('clock.jpg')
'jpeg'

以下は、imghdrパッケージの実装の1つにすぎません。特定の画像ファイル拡張子がある場合は、特定の操作を実行します。

def identify_filetype(url, imageName, folderName):
   session = _setupSession()
   try:
      # time out is another parameter tuned
      image = session.get(url, timeout = 5)
      with open(os.path.join(folderName, imageName),'wb') as fout:
      fout.write(image.content)
      fileExtension = imghdr.what(os.path.join(folderName, imageName))
      if fileExtension is None:
         os.remove(os.path.join(folderName, imageName))
      else:
         newName = imageName + '.' + str(fileExtension)
         os.rename(os.path.join(folderName, imageName), os.path.join(folderName, newName))
except Exception as e:
print ("failed to download one pages with url of " + str(url))

  1. OpenCVを使用して画像のエッジを検出するPythonプログラム

    この問題では、Pythonが画像またはビデオファイルのエッジを検出する方法を確認します。これを実現するには、OpenCVライブラリが必要です。 OpenCVライブラリは、主にコンピュータビジョン用に設計されています。オープンソースです。もともとはIntelによって設計されました。これは、オープンソースBSDライセンスの下で無料で使用できます。 OpenCV機能を使用するには、pip。を使用してダウンロードする必要があります。 OpenCVはNumpyモジュールをダウンロードします。それも必要になります。 sudo pip3 install opencv-python 入力として、この場

  2. Pythonでのフォトモザイクの実装

    フォトモザイクは、画像を正方形のグリッドに分割できる手法です。各正方形は、他の画像や色に置き換えられます。したがって、実際の画像を特定の距離から見たい場合は実際の画像を見ることができますが、近づくと、さまざまな色のブロックのグリッドを見ることができます。 この場合、photomosaicと呼ばれるPythonモジュールを使用しています。このモジュールを使用すると、いくつかのフォトモザイクを簡単に作成できます。インストールするには、このリンクをたどってください。 scikit learnもダウンロードします モジュール。 sudo pip3 install photomosaic この