Yeni bir yazımda herkese merhaba. Bu yazıda, Python OpenCV kullanarak geometrik şekillerin kullanımından bahsedeceğim.
OpenCV ile farklı geometrik şekiller çizebiliyoruz.
Bu şekiller; cv.line() , cv.circle() , cv.rectangle() , cv.ellipse() fonksiyonları ile çizilir.
Bu fonksiyonların ortak özellikleri ise şöyledir;
img : Şekilleri çizmek istediğiniz tuval/resim
color: Şeklin rengi. OpenCV de renkler BGR olarak girilir. Örneğin: mavi için (255,0,0) yazılır.
kalınlık: Şekillerin kalınlığı. Daire gibi kapalı şekilleri doldurmak için -1 değeri girilir. Varsayılan kalınlık 1’dir.
Biraz daha detaya girip örneklerle anlatayım.
İlk önce NumPy kullanarak boş bir tuval oluşturalım.
import numpy as np from cv2 import cv2 img = np.zeros((315,512,3), np.uint8) + 255
Örnekleri bu tuval üzerinden yapacağız.
cv2.rectangle
cv2.rectangle(tuval,
(tepe noktası),
(karşı tepe noktası),
(B,G,R),
kalınlık)
tepe noktası = (X, Y)
karşı tepe noktası = (X, Y)
B G R = (0, 0, 0)
kalınlık = int()
Örnek:
cv2.rectangle(img, (25, 25), (487, 160), (0, 255, 0), 3)

Çıktı
cv2.circle
cv2.circle(tuval,
(Çember merkez noktası),
(yarıçapı),
(B,G,R),
kalınlık)
Çember merkez noktası = (X, Y)
yarıçapı = 8
B G R = (0, 0, 0)
kalınlık = int()
Örnek:
cv2.circle(img, (256,210), 45, (0, 0, 0), 3) cv2.circle(img, (235,210), 15, (0, 0, 255), -1) cv2.circle(img, (255,210), 15, (0, 255, 0), -1) cv2.circle(img, (275,210), 15, (255, 0, 0), -1)

cv2.line
cv2.line(tuval,
(başlangıç noktası),
(bitiş noktası),
(B,G,R),
kalınlık)
Başlangıç noktası = (X, Y)
Bitiş noktası = (X, Y)
B G R = (0,0,0)
kalınlık = int()
Örnek:
cv2.line(cizim, (120,256), (410,256), (0,0,0), 4) cv2.line(cizim, (256,162), (256,256), (0,0,0), 2)

cv2.putText
cv2.putText(tuval,
(metin),
(koordinat),
(yazı tipi),
(yazı boyutu),
(B,G,R),
kalınlık)
Metin = str()
Koordinat = (X, Y)
B G R = (0,0,0)
Yazı Boyutu float()
kalınlık = int()
Örnek:
font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(img,"YAZILIMFURYASI.com",(150,280),font, 0.7, (255,60,0), 1, cv2.LINE_AA)
Tüm bu kodları birleştirip deneyelim 🙂
img = np.zeros((315,512,3), np.uint8) + 255
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.rectangle(img, (25,25), (487, 160), (0, 255, 0), 3)
cv2.circle(img, (256,210), 45, (0, 0, 0), 3)
cv2.circle(img, (235,210), 15, (0, 0, 255), -1)
cv2.circle(img, (255,210), 15, (0, 255, 0), -1)
cv2.circle(img, (275,210), 15, (255, 0, 0), -1)
cv2.line(img, (120,256), (410,256), (0,0,0), 4)
cv2.line(img, (256,162), (256,256), (0,0,0), 2)
cv2.putText(img, "OpenCV", (150,100), font, 2, (0,0,0), 3, cv2.LINE_AA)
cv2.putText(img, "Cizim Fonksiyonlari | Drawing Functions", (100,140), font, 0.5, (0,0,0), 1, cv2.LINE_AA)
cv2.putText(img, "YAZILIMFURYASI.com", (150,280), font, .7, (255,60,0), 1, cv2.LINE_AA)
cv2.imshow("OpenCV", img)
cv2.imwrite("resimKaydet.png", img)
cv2.waitKey(0)
Çıktımız şu şekilde olacaktır.

OpenCV ile ilgili yazılarıma bakmak için tıklayın
instagram‘dan takip edebilir, pratik bilgileri oradan öğrenebilirsiniz.
Kaynak:
https://docs.opencv.org/4.x/dc/da5/tutorial_py_drawing_functions.html