파이썬 기초 | 라이브러리 사용법 | Pillow 라이브러리로 이미지 연출하기 | 이미지 상하좌우 반전, 밝기 조절, 흑백/엠보싱/연필스케치 효과, 경계선 추출하기

    728x90

     

     

    1. Pillow 라이브러리

     

    ▶ 외부 라이브러리의 개념

    : 파이썬 자체에는 없는 기능

    : 다른 개발자가 만들어놓은 좋은 기능들의 묶음

     

    ▶ 외부 라이브러리의 종류

    : 파이썬 외부 라이브러리의 종류는 수십만 개 이상임

    : 파이썬 외부 라이브러리 검색 웹사이트 참고

    https://pypi.org/

     

    [Pillow 라이브러리 실습]

     

    * 외부 라이브러리로 간단한 이미지 처리 프로그램 만들기

    (이미지를 처리하는 Pillow(필로우)라는 라이브러리를 사용함)

     

    ▶ Pillow 라이브러리 (저는 이미 설치되어 있어서 업데이트 하라는 문구 나옴)

    pip install pillow

    import PIL 
    
    # 이렇게 쳤는데 에러가 안나면 잘 되는 것

     

    ▶ 저장된 이미지 불러오기

    from PIL import Image, ImageFilter, ImageEnhance, ImageOps
    img = Image.open("C:/photo/짱구1.jpg")
    img.show()

     

    ▶ 이미지 열고 저장하기

    img.save("C:/photo/output01.jpg")

     

    ▶ 이미지 좌/우 반전하기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = img.transpose(Image.FLIP_LEFT_RIGHT) 
    img.show()

     

    ▶ 이미지 상/하 반전하기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = img.transpose(Image.FLIP_TOP_BOTTOM) 
    img.show()

     

    ▶ 이미지 회전하기

    img = Image.open("c:/photo/짱구1.jpg") 
    img.show() 
    img = img.rotate(45, expand=True)   # 회전각도 현재 45도
    img.show()

     

    ▶ 이미지 잘라내기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = img.crop((100,100,600,600))  # 왼쪽 위 = (0,0) 오른쪽 아래 = (width, height)
    img.show()

     

    ▶ 이미지 밝게 하기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = ImageEnhance.Brightness(img).enhance(3.0)  # 3만큼 밝게
    img.show()

     

    ▶ 이미지 어둡게 하기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = ImageEnhance.Brightness(img).enhance(0.4)  # 4만큼 어둡게
    img.show()

     

    ▶ 이미지 흑백으로 만들기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = ImageOps.grayscale(img) 
    img.show()

     

    ▶ 이미지 엠보싱 효과 넣기(2차원 그림이라 그런지 엠보싱 효과가 잘 안 나타남..)

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = ImageOps.grayscale(img) 
    img.show()

     

    ▶ 연필 스케치 효과 넣기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = img.filter(ImageFilter.CONTOUR) 
    img.show()

     

    ▶ 경계선 추출하기

    img = Image.open("C:/photo/짱구1.jpg") 
    img.show() 
    img = img.filter(ImageFilter.FIND_EDGES) 
    img.show()

    728x90

    댓글