HOME/Articles/

pil example inpainting (snippet)

Article Outline

Python pil example 'inpainting'

Modules used in program:

  • import PIL
  • import numpy as np
  • import cv2

python inpainting

Python pil example: inpainting


!pip install opencv-python

!wget https://images.pexels.com/photos/860562/pexels-photo-860562.jpeg

import cv2
import numpy as np
import PIL
from IPython.display import display

#Resmi okuyalım
imge = cv2.imread("pexels-photo-860562.jpeg")

#Rengi BGR'den RGB'ye çevirelim
imge = cv2.cvtColor(imge, cv2.COLOR_BGR2RGB)

#Resmin boyutlarını normalize edelim
imge = cv2.resize(imge, (500, 500))

#Bastıralım
display(PIL.Image.fromarray(imge))

#Maskeyi oluşturalım, rastgele çizgiler ve bir kare çizip resmi bozalım
imge = imge.astype("uint8")
maske = np.ones((500, 500,3), dtype=imge.dtype)
maske[300:310,:,:] = 0
maske[400:405,:,:] = 0
maske[200:220,400:420,:] = 0
maske[:,100:103,:] = 0

#Bunu bitwise and gibi düşünebilirsiniz
imge = np.multiply(imge, maske)

# Bastıralım
display(PIL.Image.fromarray(imge))

#inpainting fonksiyonu bizim oluşturduğumuz maskenin tam tersini istiyor, o yüzden 1'den çıkarıyoruz bütün maskeyi
maske = 1-maske[:,:,0]

#CV'nin inpainting fonksiyonu
imge = cv2.inpaint(imge,maske,3,cv2.INPAINT_TELEA)

# Bastıralım
display(PIL.Image.fromarray(imge))