Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 크기 속성을 기반으로 이미지 필터링?

<시간/>

Python은 Pillow, Python Imaging 라이브러리, scikit-image 또는 OpenCV를 포함하여 이미지 처리를 위한 여러 라이브러리를 제공합니다.

Pillow 라이브러리는 이미지 조작을 위한 여러 표준 절차를 제공하고 jpeg, png, gif, tiff, bmp 등과 같은 다양한 이미지 파일 형식을 지원하므로 여기에서 이미지 처리를 위해 Pillow 라이브러리를 사용할 것입니다.

Pillow 라이브러리는 Python Imaging Library(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(너비/높이) 크기가 됩니다.