Tech이야기~!
welcom 자세히보기

Computer/OpenCV

[Opencv with python] 이미지 향상_Pillow

Enhold 2019. 12. 12. 14:35

이미지 향상에는이미지의 대비, 밝기, 색상 밸런스, 선명도 변경과 같은 작업이 포홤된다.

Pillow패키지의 ImageEnhance모듈을 이용한다.

이미지 밝기

from PIL import Image
from PIL import ImageEnhance

#이미지 읽음
img = Image.open('image2.jpg')

enhancer = ImageEnhance.Brightness(img)
enhancer.enhance(2).show()
#bright_img = enhancer.enhance(2)
#bright_img.show()
  • enhance()함수
  • float형 인자를 입력, 인자 값이 이미지의 밝기를 변경
  • 1보다 작은 인자 값은 이미지의 밝기를 감소
  • 1보다 큰 인자 값은 이미지의 밝기를 증가
  • 1은 원래 이미지

 

이미지 대비

from PIL import Image
from PIL import ImageEnhance

img = Image.open('image2.jpg')

#이미지의 대비 변경
enhancer = ImageEnhance.Contrast(img)
enhancer.enhance(2).show()
#new_img = enhancer.enhance(2)
#new_img.show()
  • enhance()함수
  • float형 인자를 입력, 인자 값이 이미지의 밝기를 변경
  • 1보다 작은 인자 값은 이미지의 밝기를 감소
  • 1보다 큰 인자 값은 이미지의 밝기를 증가
  • 1은 원래 이미지

 

이미지 픽셀에 접근

가끔 임계치 조정과 같은 작업을 수행할 때 이미지의 개별 픽셀에 적근해야한다. 

Pillow는 PixelAccess클래스에서 이미지 픽셀 값을 조작하는 함수를 제공한다.

 

getpixel( )

   이 함수는(x,y)좌표에 있는 픽셀의 색상 값을 반환한다. 투플을 인수로 취해 색상 값을 튜플한다.

putpixel() 

   이 함수는(x,y)좌표에 있는 픽셀의 색상 값을 새로운 색상으로 변경한다. 

   이미지에 두 ㄹ이상의 색상 대역이 있다면 튜플이 함수의 인수로 전달된다.

from PIL import Image
from PIL import ImageEnhance

#이미지 읽음
img = Image.open('image2.jpg')

img.getpixel((100,100))
from PIL import Image
from PIL import ImageEnhance

#이미지 읽음
img = Image.open('image2.jpg')

img.putpixel((100,100),(10,230,150))
img.getpixel((100,100))