Anasayfa » C++, Görüntü İşleme - OpenCv

OpenCV Dersleri – 3 Resim Üzerine Şekil Çizme ve Yazı Yazma

21 Ekim 2012 8.198 kez okundu Yorum yok
1 Star2 Stars3 Stars4 Stars5 Stars (1 oy,5 üzerinden : 5,00 )
Loading...

Merhaba arkadaşlar, bu yazımızda resim üzerine şekillerin nasıl çizildiğini ve yazıların nasıl yazılabileceğini anlatacağım. Öncelikle kodumu paylaşıyorum.

#include <stdio.h>
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <math.h>
int main(int argc, char** argv)
{
	IplImage* src1 = cvLoadImage( "resim.jpg" );
 
	/*
	* Çizgi çizme
	*/
	//iki nokta belirlenir
	CvPoint pt1 = cvPoint(10,10);
	CvPoint pt2 = cvPoint(150,150);
 
	//kullanılacak renk
	CvScalar red =  CV_RGB(250,0,0);
 
	//kalınlık
	int tickness = 2;
	int connectivity = 8;
 
	//çizgi çizilir
	cvLine(src1,pt1,pt2,red,tickness,connectivity);
 
	/*
	* Çember Çizme
	*/
	// çap değeri
	int radius = 30;
 
	//renk
	CvScalar blue = CV_RGB(0,0,250);
 
	//çember çizilir
	cvCircle(src1,pt2,radius,blue,tickness,connectivity);
 
	/*
	* Yazı yazma
	*/
	// Yazımız
	const char * text = "deneme texti";
 
	//ölçekler
	double hscale = 1.0;
	double vscale = 0.8;
 
	//keskinlik
	double shear = 0.2;
	int tickness2 = 1;
	int line_type = 8;
	CvScalar yellow = CV_RGB(250,250,0);
	//öncelikle yazının fontu ayarlanır
	CvFont font1;
	cvInitFont(&font1,CV_FONT_HERSHEY_DUPLEX,hscale,vscale,shear,tickness2,line_type);
	//yazı ekrana basılır
	cvPutText(src1,text,pt2,&font1,yellow);
 
 
	cvNamedWindow("Yazi ve sekil", 1);
	cvShowImage("Yazi ve sekil", src1);
	cvWaitKey();
	return 0;
}

Programımızın ekran görüntüsü:

Çizgi ve çember çizmek biraz daha basit olmasına karşın, yazı yazmak daha karmaşıktır. İlk olarak çizgimiz için başlangıç ve bitiş noktalarını belirliyoruz.

CvPoint pt1 = cvPoint(10,10);
CvPoint pt2 = cvPoint(150,150);

Ardından çizgimizin rengini belirliyoruz.

CvScalar red =  CV_RGB(250,0,0);

Son olarak değişken olarak  kalınlık ve çizgi tipinide belirleyip,

int tickness = 2;
int connectivity = 8;

Çizgimizi çizebiliriz.

cvLine(src1,pt1,pt2,red,tickness,connectivity);

 

Çemberinde çok bir farkı bulunmamaktadır. Farklı olarak bir çap belirliyoruz,

int radius = 30;

ve çemberimizi çizebiliriz. (Diğer değişkenleri, üstteki değişkenlerden kullanıyorum)

cvCircle(src1,pt2,radius,blue,tickness,connectivity);

 

Yazı yazmaya gelince ise önce font belirlememiz gerekiyor. Bunun için bazı değişkenlere ihtiyacımız var.

//ölçekler
double hscale = 1.0;
double vscale = 0.8;

//keskinlik
double shear = 0.2;
int tickness2 = 1;
int line_type = 8;
CvScalar yellow = CV_RGB(250,250,0);

ve fontumuzu yaratabiliriz.

CvFont font1;
cvInitFont(&font1,CV_FONT_HERSHEY_DUPLEX,hscale,vscale,shear,tickness2,line_type);

son olarak yazımızı resim üzerine basabiliriz.

cvPutText(src1,text,pt2,&font1,yellow);

Bu yazımızda şekillerin ve textlerin nasıl çizdirileceğinden bahsettik. Sonra ki derslerde görüşmek üzere, iyi günler.

 

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.