(Ders 28) OpenCV ile Daire Tespiti (C++)

(Ders 51) OpenCV ile Göz Bebeği Algılama ve Göz Takibi (C++)
(Ders 33) OpenCV ile Resmin Kenarlarını Bulma (C++)

Size faydalı olduysa, sosyal medyada paylaşarak bize destek olun. Teşekkürler.

Ekran Görüntüsü:

Açıklama:

Bazı görüntü işleme projelerinde daireleri tespit etmemiz gerekir.

Paylaşacağımız kod gri resimde HoughCircles fonksiyonuyla daireleri buluyor ve

renkli resmin üzerine daireleri çiziyor.

Program Kodu:

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>

using namespace cv;
using namespace std;

int main()
{
	Mat src, src_gray;

	//Resim okunuyor
	src = imread("resim.jpg", 1);

	if (!src.data)
	{
		return -1;
	}

	//Gri resme dönüştürüldü
	cvtColor(src, src_gray, CV_BGR2GRAY);

	//Yanlış daire tespitini önlemek için resim gürültüsü azaltıldı
	GaussianBlur(src_gray, src_gray, Size(9, 9), 2, 2);

	vector<Vec3f> circles;

	HoughCircles(src_gray, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows / 8, 200, 100, 0, 0);

	//Daireler bulunuyor
	for (size_t i = 0; i < circles.size(); i++)
	{
		//circles in üç değeri vardır
		//ilk iki değer merkezin konumu (x ve y cinsinden)
		Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
	
		//üçüncü değer yarıçap
		int radius = cvRound(circles[i][2]); //yarıçap
	
		//Daire merkezleri
		circle(src, center, 3, Scalar(0, 255, 0), -1, 8, 0);
		//Dıştaki daire
		circle(src, center, radius, Scalar(0, 0, 255), 3, 8, 0);
	}

	//Pencerede daireler gösteriliyor
	namedWindow("Daire Tespiti", CV_WINDOW_AUTOSIZE);
	imshow("Daire Tespiti", src);

	waitKey(0);
	return 0;
}

Ek (Orjinal Resim):

Size faydalı olduysa, sosyal medyada paylaşarak bize destek olun. Teşekkürler.

(Ders 51) OpenCV ile Göz Bebeği Algılama ve Göz Takibi (C++)
(Ders 33) OpenCV ile Resmin Kenarlarını Bulma (C++)