Blending, Pasting

Kategori: Computer Vision , 20 Ocak 2020 , JanFranco


Bu yazımızda iki resmi üst üste getirmeyi göstereceğiz. Bu yazı için konuşursak iki method kullanacağız. Birincisi sadece aynı boyutlu resimler için geçerli olan bir OpenCV methodu. Diğer method ise farklı boyutlar için de geçerli bir pixel manipülasyon methodu. İlk olarak resimleri import alalım:


import cv2

img = cv2.imread("puppy.jpg")
img2 = cv2.imread("do_not_copy.jpg")

cv2.imshow("Img", img)
cv2.waitKey(0)
cv2.imshow("Img2", img2)
cv2.waitKey(0)
>>





Boyutlar farklı olduğundan küçük resmin boyutlarını kullanarak, büyük resmi yeniden boyutlandıracağız. Boyutlandırma işlemleri için OpenCV kütüphanesinin resize methodunu kullanabiliriz:


img = cv2.resize(img, (img2.shape[1], img2.shape[0]))
cv2.imshow("Img", img)
cv2.waitKey(0)



blended = cv2.addWeighted(src1=img, alpha=.7, src2=img2, beta=.3, gamma=0)
cv2.imshow("Blended", blended)
cv2.waitKey(0)

img = cv2.imread("puppy.jpg")
img2 = cv2.imread("do_not_copy.jpg")
>>



İki resmi oranlar kullanarak üst üste oturttuk. addWeighted methodu 5 argüman alıyor. İlk argüman birinci resim, ikinci argüman ilk resmin ağırlığı, üçüncü argüman ikinci resim, dördüncü argüman ikinci resmin ağırlığı ve beşinci argüman gama değeri. Bu methodun yaptığı işi bir formülle gösterebiliriz:

Yeni resmin x pixelinin değeri = ilk resmin x pixelinin değeri * alpha + ikinci resmin x pixelinin değeri * beta + gamma

Şimdi yapacağımız işlem aslında oldukça basit. Başlangıç ve bitiş değerlerini belirleyip, büyük resimde o bölgeyi seçip, ikinci resmi oraya yapıştıracağız:


xOffset, yOffset = 100, 100
xEnd, yEnd = xOffset + img2.shape[0], yOffset + img2.shape[1]

img[xOffset:xEnd, yOffset:yEnd] = img2
cv2.imshow("Img", img)
cv2.waitKey(0)
>>


Sonraki Yazı: Thresholding
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın