파이썬 이것저것/파이썬 딥러닝 관련

[Python] 이미지 처리

agingcurve 2022. 7. 8. 17:40
반응형

이미지 관련 데이터처리

 

 

from PIL import Image
In [3]:
img = Image.open("골드본.png")
In [4]:
from matplotlib.pyplot import imshow
# 이미지 출력
imshow(img)
Out[4]:
<matplotlib.image.AxesImage at 0x1d68905cdc0>
In [5]:
# 출력사이즈 확인
print("Size: {}, Mode: {}".format(img.size, img.mode))
Size: (433, 608), Mode: RGB
In [7]:
# crop(x1,y1, x2, y2)를 이용하여 확대
imshow(img.crop((100, 100, 300, 300)))
Out[7]:
<matplotlib.image.AxesImage at 0x1d68b2af0d0>
In [8]:
# 이미지 기울이기
imshow(img.rotate(60, expand=True))
Out[8]:
<matplotlib.image.AxesImage at 0x1d68b518220>
In [9]:
# 이미지 회전
imshow(img.rotate(270))
Out[9]:
<matplotlib.image.AxesImage at 0x1d68b446f10>
In [10]:
# 새롭게 이미지 사이즈를 설정한다.
img_resized = img.resize((128, 128))
print("새로운 이미지 사이즈:", img_resized.size)
imshow(img_resized)
새로운 이미지 사이즈: (128, 128)
Out[10]:
<matplotlib.image.AxesImage at 0x1d68b369550>
In [11]:
from PIL import ImageEnhance
In [13]:
# 이미지 밝게 하기
bright_enhancer = ImageEnhance.Brightness(img)
In [14]:
# 밝게
imshow(bright_enhancer.enhance(2))
Out[14]:
<matplotlib.image.AxesImage at 0x1d68b3ec250>
In [15]:
# 어둡게
imshow(bright_enhancer.enhance(0.5))
Out[15]:
<matplotlib.image.AxesImage at 0x1d68b49e370>
In [36]:
contrast_enhancer = ImageEnhance.Contrast(img)
imshow(contrast_enhancer.enhance(1))
Out[36]:
<matplotlib.image.AxesImage at 0x27b6eb3b850>
In [23]:
# 이미지를 흐릿하게
imshow(contrast_enhancer.enhance(0.5))
Out[23]:
<matplotlib.image.AxesImage at 0x27b6d3eb8e0>
In [17]:
# 흑백 사진 모드
import matplotlib.pyplot as plt


골드본사진 = img.convert("L")
print("흑백 사진 모드:", 골드본사진.mode)
imshow(골드본사진, cmap=plt.get_cmap("gray"))
흑백 사진 모드: L
Out[17]:
<matplotlib.image.AxesImage at 0x1d68b75fcd0>
In [19]:
from PIL import ImageFilter

imshow(img.filter(ImageFilter.SHARPEN))
Out[19]:
<matplotlib.image.AxesImage at 0x1d68c904700>
In [20]:
# 이미지를 선명하게 해준다.
# 할 수록 색감이 강해진다.

img_sharpen = img.filter(ImageFilter.SHARPEN)
img_sharpen = img_sharpen.filter(ImageFilter.SHARPEN)
img_sharpen = img_sharpen.filter(ImageFilter.SHARPEN)
img_sharpen = img_sharpen.filter(ImageFilter.SHARPEN)
img_sharpen = img_sharpen.filter(ImageFilter.SHARPEN)
imshow(img_sharpen)
Out[20]:
<matplotlib.image.AxesImage at 0x1d68c9577c0>
In [21]:
# 이미지를 흐릿하게 해준다. 
img_blur = img.filter(ImageFilter.BLUR)
img_blur = img_blur.filter(ImageFilter.BLUR)
img_blur = img_blur.filter(ImageFilter.BLUR)
imshow(img_blur)
Out[21]:
<matplotlib.image.AxesImage at 0x1d68caca310>
In [22]:
# 이미지를 블러처리 한다.
imshow(img.filter(ImageFilter.FIND_EDGES))
Out[22]:
<matplotlib.image.AxesImage at 0x1d68cb35040>