OpenCV Renk Uzayları Arası Dönüşümler

OpenCV Renk Uzayları Arası Dönüşümler

Daha önce temel dijital görüntü işleme kavramları bölümünde renklere ve renk uzaylarına değinmiştir. OpenCV’de birçok renk uzayı desteklenmektedir ve bunlar arasında dönüşüm yapılabilmektedir. Bu bölümde OpenCV ile bu renk uzayları arasında dönüşüm işlemleri için Imgproc sınıfı içerisinde cvtColor() metodu bulunmaktadır. cvtColor metodu parametre olarak iki adet mat nesnesi ve dönüşüm yapılacak olan renk uzayını almaktadır.

Imgproc.cvtColor(srcMat, dstMat, code);

srcMat: kaynak bir mat nesnesi yani dönüşümü yapılacak olan görüntü, dstMat: hedef mat nesnesi yani dönüşüm sonucunda oluşacak yeni renk uzayına sahip görüntü, code ise hangi renk uzayları arasında dönüşüm yapılacağıdır. Desteklenen bazı renk uzayları aşağıdaki tabloda yer almaktadır.

Kaynak Renk Uzayı 2 Hedef Renk Uzayı COLOR_RGB2BGR COLOR_RGB2BGRA COLOR_RGB2GRAY COLOR_GRAY2RGB COLOR_RGB2HLS COLOR_HSV2RGB COLOR_RGB2HSV COLOR_RGB2Luv COLOR_HSV2RGB COLOR_RGB2YUV COLOR_RGB2Lab

RGB HSV Renk Dönüşümü

RGB (Red Greeb Blue – Kırmızı Yeşil Mavi) renk uzayından HSV (Hue Saturation Value – Renk tonu Doygunluk Değer) renk uzayına dönüşüm

public static void main(String args) {
	System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
	Mat kaynakGoruntu=new Mat();
	kaynakGoruntu=Imgcodecs.imread("C:\\kizkulesi.jpg");	
	Mat hedefGoruntu=new Mat();
      //Okunanan RGB görüntüyü HSB renk uzayına çevirerek hedefGoruntu mat nesnesine atar
	Imgproc.cvtColor(kaynakGoruntu, hedefGoruntu, Imgproc.COLOR_RGB2HSV);
     	Imgcodecs.imwrite("C:\\ kizkulesiHSV.jpg", hedefGoruntu);
}

24

RGB GRAY Renk Dönüşümü

GRAY renk uzayı ile renkler, siyahın ve beyazın tonlarında yani gri olarak tanımlanır.

Imgproc.cvtColor(kaynakGoruntu, hedefGoruntu, Imgproc.COLOR_GRAY2RGB);

25

Sistemdeki kameradan alınan görüntü üzerine de aynı işlemi uygulayarak, akış halindeki bir görüntünün renk uzayı değiştirilebilir. Bazı renk uzayları arasındaki dönüşüm kaliteli bir sonuç vermeyebilir, her renk uzayı farklı geometrik biçimlerde ifade edilmektedir, bu ifade şekli matematiksel olarak bazı renk uzayları arasındaki dönüşüme engel teşkil etmektedir.

Ek Bilgi:

Eğer renk dönüşümünü kendiniz yapmak isterseniz; RGB bir pikselin değeri; kırmızı kanalının %30’u (0.2989), yeşil kanalın %59’u (0.5870) ve mavi kanalın %11’i (0.1144) alınarak toplanması neticesinde bulunmaktadır. Bu demek oluyor ki: GRI_SEVIYE_GORUNTU=0.2989*+0.5870*+0.1140*;

Please enable JavaScript to view the comments powered by Disqus.