C++ ve OpenCV ile Resmin Simetrisini Alma ve Zıt Renk Dönüşümü (2)

Merhaba arkadaşlar OpenCV ile ilgili yazı serimize devam ediyoruz. Bu yazımda bir resmin simetrisini almanın ve resmin renklerinin zıt renklere dönüşümünün nasıl olduğunu anlatacağım.

Bir resmin simetrisini almak için OpenCV kütüphanesinin flip() fonksiyonundan faydalanacağız. Hemen c++ kodunu yazacağım buraya. Kodların yanına açıklamalarını yazdım.

include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
Mat resim = imread(“image/deneme.jpg”); // resmi okuttuk
Mat ySimetri; // yatay simetri
Mat dSimetri; // dikey simetri
Mat y_dSimetri; // yatay/dikey simetri

namedWindow(“Normal Resim”, CV_WINDOW_AUTOSIZE); // Normal resme pencere başlığı ekledik
namedWindow(“Yatay Simetri”, CV_WINDOW_AUTOSIZE); // Yatay resme pencere başlığı ekledik
namedWindow(“Dikey Simetri”, CV_WINDOW_AUTOSIZE); // Dikey resme pencere başlığı ekledik
namedWindow(“Hem Yatay Hem Simetri”, CV_WINDOW_AUTOSIZE);

imshow(“Normal Resim”, resim); // Normal resmi gösteriyoruz

flip(resim, ySimetri, 1); // Resmin yatay simetrisi alınıyor
imshow(“Yatay Simetri”, ySimetri); // Resmin yatay simetrisi gösteriliyor

flip(resim, dSimetri, 0); // Resmin dikey simetrisi alınıyor
imshow(“Dikey Simetri”, dSimetri); // Resmin yatay simetrisi gösteriliyor

flip(resim, y_dSimetri, -1); // Resmin yatay ve dikey simetrisi alınıyor
imshow(“Yatay ve Dikey Simetri”, y_dSimetri); // Resmin yatay ve dikey simetrisi gösteriliyor
waitKey(0); // Bir tuşa basılana kadar bekle

return 0;
}

Resmin boyutları çok büyük olduğu için görüntüleri güzel çekemedim. Ama merak etmeyin şimdiki örnekte boyutları küçülttüm :)) Şimdi resmin renklerini zıt renklerine çevirelim. Bunun için kullandığımız fonksiyon bitwise_not() fonksiyonu. Kodlarımızı inceleyelim hemen.

#include <opencv2/core/core.hpp>
#include “opencv2/highgui/highgui.hpp”
#include <iostream>

using namespace cv;
using namespace std;
int main(){

Mat resim = imread(“image/rsz_deneme.jpg”); // rsz_deneme.jpg isimli resmimizi açtık.
Mat renk_cevir; // Mat sınıfından renk_cevir adlı bir nesne oluşturduk.

if(resim.empty()) // resmimizin var olma kontrolü yapıldı.
cout << “Resim Bulunamadi !” << endl; // yoksa mesajı.

else{
bitwise_not(resim, renk_cevir, noArray()); // resim’in zıt renkleri cevir’e atandı.

imshow(“normal”, resim); // normal pencere adlı resim’i açtık.
imshow(“renk cevir”, renk_cevir); // renk cevir pencere adlı renk_cevir’i açtık.
imwrite(“zitRenk.jpg”, renk_cevir); // zitRenk.jpg adına kaydedildi.
waitKey(0); // Bir tuşa basılana kadar bekle.
}

return 0;
}

Açıklamalar yetersiz gelirse yorum kısmından yazarak veya [email protected] mail adresimden bana ulaşıp sorularınızı sorabilirsiniz. İyi çalışmalar 🙂

 

Sorular kısmından konu ile ilgili soruları sorabilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir