Ugrás a fő tartalomra

Átmenetes képek készítése python-nal

Átmenetes képek készítése python-nal


Adva van két kép, amely alapján egy harmadikat képezünk úgy, hogy az egyik képet használjuk egy ideig majd a másik képet, esetleg az átmenetet simítjuk valamilyen technikával.


Képsor (két kiindulási kép és a végeredmény)




Maszk (átmenetes fekete fehér)





Forráskód 1. (PIL csomag):

Sokkal jobban hangolható és maszk kép alkalmazásával finomíthatjuk az átmenetet a képek között a PIL csomag használata esetén.

import numpy as np
from PIL import Image
src1 = np.array(Image.open(r'teknos.jpg'))
src2 = np.array(Image.open(r'hegy.jpg').resize(src1.shape[1::-1], Image.BILINEAR))
mask1 = np.array(Image.open(r'gradation_v.jpg').resize(src1.shape[1::-1], Image.BILINEAR))
mask1 = mask1 / 255
dst = src1 * mask1 + src2 * (1 - mask1)
## mentés
Image.fromarray(dst.astype(np.uint8)).save(r'kesz.jpg')
## megjelenítés
dst.show()


Végeredmény második módszerrel




Forrás kód  2 . (CV csomag)

A két kép átlátszóságának hangolásával tudunk a két kép között váltani és a sorrend van még a kezünkben a CV csomag esetén.

import cv2

src1 = cv2.imread(r'teknos.jpg')
src2 = cv2.imread(r'hegy.jpg')
## méretezés
src2 = cv2.resize(src2, src1.shape[1::-1])
## maszkolás
dst = cv2.addWeighted(src1, 0.5, src2, 0.5, 0)
## mentés
cv2.imwrite(r'kesz2.jpg', dst)
## megjelenítés
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()


Forrás kód  3 . (CV csomag átmenet maszk használattal)


import cv2
import numpy as np
##beolvasás
img1 = cv2.imread(r'teknos.jpg')
img2 = cv2.imread(r'hegy.jpg')
##
rows,cols,channels = img2.shape
roi = img1[0:rows, 0:cols ]
roi2 = img2[0:rows, 0:cols ]
##
img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 200, 255, cv2.THRESH_BINARY_INV)
mask_inv = cv2.bitwise_not(mask)
##
dst = cv2.bitwise_and(roi,roi2,mask = mask)
## mentés
cv2.imwrite(r'kesz2.jpg', dst)
## megjelenítés
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()


Jó elefánt + felhős ég a fák felett minta:




Másik út a  kép stílusának MI használattal való 'átültetése'








Itt azért nagyokat lehet tévedni, de érdekes eredmények is kijöhetnek.





Megjegyzések