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

Pythonのサイズ属性に基づいて画像をフィルタリングしますか?


Pythonは、Pillow、Python Imagingライブラリ、scikit-image、OpenCVなどの画像処理用の複数のライブラリを提供しています。

ここでは、画像処理に複数の標準手順を提供し、jpeg、png、gif、tiff、bmpなどのさまざまな画像ファイル形式をサポートするPillowライブラリを使用します。

PillowライブラリはPythonImagingLibrary(PIL)の上に構築されており、親ライブラリ(PIL)よりも多くの機能を提供します。

インストール

pipを使用して枕を取り付けることができるので、コマンドターミナルに次のように入力するだけです-

$ pip install pillow

枕の基本操作

ピローライブラリを使用した画像の基本的な操作を見てみましょう。

from PIL import Image
image = Image.open(r"C:\Users\rajesh\Desktop\imagefolder\beach-parga.jpg")
image.show()
# The file format of the source file.
# Output: JPEG
print(image.format)

# The pixel format used by the image. Typical values are “1”, “L”, “RGB”, or “CMYK.”
# Output: RGB
print(image.mode)

# Image size, in pixels. The size is given as a 2-tuple (width, height).
# Output: (2048, 1365)
print(image.size)


# Colour palette table, if any.
#Output: None
print(image.palette)

出力

Pythonのサイズ属性に基づいて画像をフィルタリングしますか?

JPEG
RGB
(2048, 1365)
None

サイズに基づいて画像をフィルタリング

以下のプログラムは、特定のパス(デフォルトのパス:現在の作業ディレクトリ)からのすべての画像のサイズを縮小します。以下のプログラムで、画像のmax_height、max_width、または拡張子を変更できます。

コード

import os
from PIL import Image

max_height = 900
max_width = 900
extensions = ['JPG']

path = os.path.abspath(".")
def adjusted_size(width,height):
   if width > max_width or height>max_height:
      if width > height:
         return max_width, int (max_width * height/ width)
      else:
         return int (max_height*width/height), max_height
   else:
      return width,height

if __name__ == "__main__":
   for img in os.listdir(path):
      if os.path.isfile(os.path.join(path,img)):
         img_text, img_ext= os.path.splitext(img)
         img_ext= img_ext[1:].upper()
         if img_ext in extensions:
            print (img)
            image = Image.open(os.path.join(path,img))
            width, height= image.size
            image = image.resize(adjusted_size(width, height))
            image.save(os.path.join(path,img))

出力

another_Bike.jpg
clock.JPG
myBike.jpg
Top-bike-wallpaper.jpg

上記のスクリプトを実行すると、現在の作業ディレクトリ(現在はpytonスクリプトフォルダ)にある画像のサイズの最大サイズは900(幅/高さ)になります。


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

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

  2. PythonでOpenCVを使用した画像の侵食と拡張

    この問題では、PythonがOpenCVモジュールを使用して侵食や膨張などの形態学的操作を実行する方法を確認します。 OpenCVライブラリは、主にコンピュータビジョン用に設計されています。オープンソースです。もともとはIntelによって設計されました。これは、オープンソースBSDライセンスの下で無料で使用できます。 OpenCV機能を使用するには、 pipを使用してダウンロードする必要があります 。 sudo pip3 install opencv-python Erosion Imageとは何ですか? 侵食では、前景オブジェクトの境界を侵食します。これは、画像から小さなホワイトノ