OpenCv ile Görüntüyü Gri Ton Yapma

Merhaba arkadaşlar, bu yazımda da sizlere görüntü işlerken en çok kullandığımız Gri Ton resim nasıl elde edebileceğimizi göstereceğim.

Bunun için çok fazla yöntem mevcut. Ben hem en basit halini hem, bir metot kullanarak hem de elle yazarak oluşturacağım. Kütüphaneleri eklemeyi unutmayın.

1) En Basit Yol İle Gri Ton

Görüntüyü eklerken imread metotunu kullanıyoruz. Bu metot içerisinde ikinci bir parametre olarak 0 verirseniz gri ton olarak sizlere görseli ekler.

import cv2
import numpy as np

resim = cv2.imread("BoluYedigoller.jpg",0) #0 ekledik

cv2.imshow("Gri Ton Okuma",resim)

 

2) OpenCV cvtColor Metotu ve BGR2GRAY

cvtColor ve bu metotun içinde de COLOR_BGR2GRAY kullanarak yapabiliriz.Hemen örneğine ve ekran görüntüsüne bakalım.

import cv2
import numpy as np


resim = cv2.imread("BoluYedigoller.jpg") # ,0 diyerek de gri ton yapabiliriz.

cv2.imshow("Orjinal Resim",resim)

# Hazır Metot Kullanarak Gri Tona Çevirme

griTon = cv2.cvtColor(resim,cv2.COLOR_BGR2GRAY)
cv2.imshow("Gri Ton",griTon)

Kullanımı yukarıdaki gibidir. En çok kullanılan yöntemdir diyebilirim. Bir de ben hazır fonksiyon kullanmam kendi fonksiyonumu kendim yazarım diyorsanız 3. yolu sizler için ekliyorum.

3) Elle Fonksiyon Oluşturma

Bu kısımda şunu bilmemiz gerekiyor. Bir görseli gri tona çevirebilmek için her bir pikselde gezmek ve şu formüle göre dolaşmamız gerekiyor. Mavi(B)*0.114 + Yeşil(G)*0.587 + Kırmızı(R)*0.299 formülü ile yapıyoruz.(Yapıyormuşuz yeni öğrendim 🙂 )

Öncelikle oluşturduğum fonksiyonu ve sonrasında tüm kodları ekleyeceğim.

def griTonYap(resim):
    
    en,boy,katman = np.shape(resim)
    yeniResim = np.zeros((en,boy,katman),dtype=np.uint8)
    
    for i in range(en):
        for j in range(boy):
            yeniResim[i:,j] = resim[i,j,0]*0.114 + resim[i,j,1]*0.587 + resim[i,j,2]*0.299

Burada her görsele göre olması için en, boy, katmanı aldığımız resmin shape’i ne göre veriyoruz. Aldığımız bilgilere göre sıfırlardan ya da birlerden oluşan yeni bir matris oluşturuyoruz.

Daha sonra en boy ile döngü içine girerek her bir piksel de gezip o piksel değerine formülümüzdeki gibi ekleme yapıyoruz. İşlemimiz bu kadar. Aşağıya tüm kodları ekliyorum kolay gelsin.

[the_ad id=”1292″]

import cv2
import numpy as np

#%%

resim = cv2.imread("BoluYedigoller.jpg") # ,0 diyerek de gri ton yapabiliriz.

cv2.imshow("Orjinal Resim",resim)

#%% Hazır Metot Kullanarak Gri Tona Çevirme

griTon = cv2.cvtColor(resim,cv2.COLOR_BGR2GRAY)
cv2.imshow("Gri Ton",griTon)

#%% Hazır Metot Kullanmadan Gri Tona Çevirme



def griTonYap(resim):
    
    en,boy,katman = np.shape(resim)
    yeniResim = np.zeros((en,boy,katman),dtype=np.uint8)
    
    for i in range(en):
        for j in range(boy):
            yeniResim[i:,j] = resim[i,j,0]*0.114 + resim[i,j,1]*0.587 + resim[i,j,2]*0.299

    cv2.imshow("Yeni Gri Resim",yeniResim)

griTonYap(resim)

Son olarak Ekran Görüntümüz:

Python görüntü işleme gri ton yapma ekran görüntüsü

Umarım anlaşılır olmuştur. Sizlerde çeşitli görseller ile tekrar edebilirsiniz.

Bunlara Göz Atmak İsteyebilirsiniz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir