Merhaba arkadaşlar, bu yazımda hazır bir metot kullanmadan görüntüyü sağa döndürme işlemini anlatacağım.
Bunun da hazır metotu OpenCV de mevcut. Fakat ben sizlere for döngüsü ile bu işlem nasıl yapılır onu anlatacağım. Öncelikle kütüphanelerimizi ekliyoruz. Sonrasında görseli okumayla başlıyoruz.
# Kütüphane Ekleme import cv2 import numpy as np # Görseli okuma ve ekranda gösterme resim = cv2.imread("BoluYedigoller.jpg") cv2.imshow("Orjinal Resim",resim)
Şimdi hazır bir fonksiyon kullanmadan görselimizi 90 derece sağa çevirelim. Bunun için sağa döndür adında bir fonksiyon oluşturuyorum. İçerisine de resim parametresi alacak.
Burada transpoz işlemi yapacağız. Bilmiyorsanız şöyle anlatayım.
Satırların sütun olması. Bunu da birinci ve üçüncü sütunları değiştirerek sağa çevirmiş olacağız. Bu kısım da sorun yaşıyorsanız transpoz işlemlerine ve matris işlemlerine bakmanızı tavsiye ederim.
Görüntüyü Sağa Döndürme Fonksiyonu
Az önce dediğim transpoz işlemini yaptıktan sonra boylam kısmının yerini değiştireceğiz. Bunu da j = boy-j-1 ile sağlayacağız. Fonksiyonumuz aşağıdadır.
def sagaDondur(resim): resimT = resim.transpose() #transpoz alma katman,en,boy = np.shape(resimT) # transpoz aldığımızda dizilim de katman başa geliyor yeniResim = np.zeros((en,boy,katman), dtype=np.uint8) #tamamı 1 matris for i in range(en-1): for j in range(boy-1): for k in range(katman): yeniResim[i,j,k] = resimT[k,i,boy-j-1] cv2.imshow("SagaDonmusResim",yeniResim) sagaDondur(resim)
Transpozunu aldığımız görselimizin en, boy ve katman değerlerini aldık. Ona göre yeni bir resim oluşturduk. Ve 3 tane for döngüsüne giriyoruz. Yeni oluşturacağımız resmin i,j,k değerleri transpozunu aldığımız resmin k,i ve boy-j-1 değerlerinden oluşması gerektiğinden ona göre eşitleme yapıyoruz ve bitiyor.
Ekran Görüntüsü:
Umarım faydalı olmuştur.