Hoşgeldin Misafir

OpenCV ile Resmin Piksellerini Değiştirme (C++)

SurHan

28 Kas 2017
4,185 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
resmin-pikselleriyle-oynama.png



-Program Açıklaması:--


Aşağıdaki kodda resmin ilgili piksellerine erişerek onlara bir değer atanıyor.-
Değer atamak için içi içe döngüler kullanıldığı için şekil üzerine kare çiziliyor.-
Aslında burada yaptığımız iş piksellerle oynamak :))-

--Program Kodu:--
-

Kod:
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <cstdlib>
 
int main() {
	cv::Mat resim = cv::imread("resim.jpg");
	for (int x = 0; x < 200; x++)
	{
		for (int y = 0; y <200; y++) { //BGR >> Blue Green Red >> Mavi Yeşil Kırmızı
			//OpenCV de BGR kodları kullanıldığı için sıra şöyle olmalı
			resim.at<cv::Vec3b>(x, y)[0] = 0; //mavi
			resim.at<cv::Vec3b>(x, y)[1] = 0; //yeşil
			resim.at<cv::Vec3b>(x, y)[2] = 255; //kırmızı
 
			//gri resim tek kanallı olduğu için
			//eğer resim gri olsaydı
			//renk atamaları aşağıdaki şekilde yapılmalıydı
			//resim.at<unsigned char>(x, y) = renk;
		}
	}
	cv::namedWindow("Kare");
	cv::imshow("Kare", resim);
	cv::waitKey();
	return 0;
}

--Ek (İşlem yapılan orjinal resim):--

resim-4.jpg
-