OpenCV’ye yeni başladım fakat bazen işin içinden çıkamıyorum.Türkçe kaynak yetersizliğinden.
Görüntü piramitlerine çalıştığım web sitesinde şu kodlar paylaşılmış fakat yeteri kadar açıklamada bulunmamış.Kodlar şu şekilde:
import cv2 as cv
import numpy as np
import sys
A = cv.imread("C:/Users/Asus/Desktop/opencv/elma.jpg")
B = cv.imread("C:/Users/Asus/Desktop/opencv/portakal.jpg")
# A için Gauss Piramdi oluşturduk!
G = A.copy() # Burda A'nın kopyasını oluşturduk!
gpA = [G] # Burda A'nın kopyasını bir listeye ekledik!
for i in range(6):
G = cv.pyrDown(G) # Burda A'nın küçük boyutlarını oluşturduk!
gpA.append(G) # Burda A'nın küçük boyutlarını listeye ekledik!
# B için Gauss Piramidi oluşturduk!
G = B.copy()
gpB = [G]
for i in range(6):
G = cv.pyrDown(G)
gpB.append(G)
# A için Laplacian Piramidi oluşturduk!
lpA = [gpA[5]]
for i in range(5,0,-1):
GE = cv.pyrUp(gpA[i])
L = cv.subtract(gpA[i-1],GE)
lpA.append(L)
# B için Laplacian Piramidi oluşturduk!
lpB = [gpB[5]]
for i in range(5,0,-1):
GE = cv.pyrUp(gpB[i])
L = cv.subtract(gpB[i-1],GE)
lpB.append(L)
# Şimdi her yüzeydeki görüntülerin sol ve sağ yarısını ekleyelim!
LS = []
for la,lb in zip(lpA,lpB):
rows,cols,dpt = la.shape
ls = np.hstack((la[:,0:cols/2],lb[:,cols/2:]))
LS.append(ls)
# Şimdi yeniden yapılandıralım
ls_ = LS[0]
for i in range(1,6):
ls_ = cv.pyrUp(ls_)
ls_ = cv.add(ls_,LS[i])
real = np.hstack((A[:,:cols/2],B[:,cols/2:]))
cv.imshow("Pyramid_blending2.jpg",ls_)
cv.imshow("Harmanlama",real)
cv.waitKey(0)
cv.destroyAllWindows()
Bu kodları rica etsem anlatabilir misiniz?
hstack(),subtract() fonksiyonlarını da pek anlamadım