Opencv — Python #4

Seda Kayademir
3 min readMar 29, 2020

Serimin dörüncü makalesinde Opencv de çizim işlemlerinin nasıl yapıldığına bakacağız.

In [1]:

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

In [2]:

# İlk olarak siyah ekran oluşturyoruz
img = np.zeros((512,512,3), np.uint8)
plt.imshow(img)
plt.axis("off")
plt.show()

Çizim işlemini gerçekleştirten fonksiyonlar ve işlevleri:

cv.line() : Çizgi çizer.

5 parametre alır

  • çizim yapılacak görüntü
  • başlangıç noktası
  • bitiş noktası
  • renk
  • çizginin kalınlığı

cv.circle() : Çember çizer.

5 parametre alır

  • çizim yapılacak görüntü
  • merkez noktası
  • yarı çap
  • renk
  • çizginin kalınlığı

cv.rectangle() : Dörtgen çizer.

5 parametre alır

  • çizim yapılacak görüntü
  • başlangıç noktası
  • bitiş noktası
  • renk
  • çizginin kalınlığı

cv.ellipse() : Elips çizer.

7 parametre alır

  • çizim yapılacak görüntü
  • merkez noktası
  • açı
  • açının başlangıç noktası
  • açının bitiş noktası
  • renk
  • çizginin kalınlığı

cv.polylines : Birden fazla noktayı birleştirmemizi sağlar.

5 parametre alır

  • çizim yapılacak görüntü
  • çizim yapılacak noktaları tutan array
  • tüm noktaların birleştirilip birleştirilmeyeceğini belirtiriz. Eğer true olursa kapalı bir şekil oluşur false olursa ilk ve son noktaları birleştirmez.
  • renk
  • çizginin kalınlığı

cv.putText() : Görsel üzerine text eklememizi sağlar

7 parametre alır

  • çizim yapılacak görüntü
  • text
  • yazılacak nokta
  • yazı tipi
  • font
  • renk
  • çizginin kalınlığı

In [3]:

cv.line(img,(0,256),(512,256),(255,0,0),3)
cv.putText(img,'Line',(20,250), cv.FONT_HERSHEY_SIMPLEX, 1,(255,0,0),1)
cv.circle(img, (256,256), 128, (255,255,0), 3)
cv.putText(img,'Circle',(225,160), cv.FONT_HERSHEY_SIMPLEX, 1,(255,255,0),1)
cv.rectangle(img,(120,120),(390,390),(0,255,0),3)
cv.putText(img,'Rectangle',(115,115), cv.FONT_HERSHEY_SIMPLEX, 1,(0,255,0),1)
cv.ellipse(img,(256,256),(100,50),1,0,360,(0,0,255),3)
cv.ellipse(img,(256,256),(100,50),1,0,180,(0,255,255),3)
cv.putText(img,'Ellipse',(240,250), cv.FONT_HERSHEY_SIMPLEX, 1,(0,0,255),1)
pts = np.array([[10,10],[10,500],[500,500],[500,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv.polylines(img,[pts],True,(255,0,255),3)
cv.polylines(img,[pts],False,(255,255,255),3)
cv.putText(img,'Polyline',(40,40), cv.FONT_HERSHEY_SIMPLEX, 1,(255,255,255),1)
plt.figure(figsize=(11,11))
plt.imshow(img)
plt.show()

Yukarıda en fazla kullanılan parametreleri belirtim. Başka hangi parametreler aldığını bilmek istiyorsanız dokümantasyona bakabilirsiniz ya da aşağıdaki gibi sorgulama işlemi yapabilirsiniz.

In [4]:

?cv.polylines

Docstring:
polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> img
. @brief Draws several polygonal curves.
.
. @param img Image.
. @param pts Array of polygonal curves.
. @param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed,
. the function draws a line from the last vertex of each curve to its first vertex.
. @param color Polyline color.
. @param thickness Thickness of the polyline edges.
. @param lineType Type of the line segments. See #LineTypes
. @param shift Number of fractional bits in the vertex coordinates.
.
. The function cv::polylines draws one or more polygonal curves.
Type: builtin_function_or_method

In [5]:

?cv.line

Docstring:
line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img
. @brief Draws a line segment connecting two points.
.
. The function line draws the line segment between pt1 and pt2 points in the image. The line is
. clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected
. or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased
. lines are drawn using Gaussian filtering.
.
. @param img Image.
. @param pt1 First point of the line segment.
. @param pt2 Second point of the line segment.
. @param color Line color.
. @param thickness Line thickness.
. @param lineType Type of the line. See #LineTypes.
. @param shift Number of fractional bits in the point coordinates.
Type: builtin_function_or_method

Kullanılan Kaynaklar

https://docs.opencv.org/master/dc/da5/tutorial_py_drawing_functions.html

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Seda Kayademir
Seda Kayademir

No responses yet

Write a response