· Hakan Çelik · OpenCV / Temel İşlemler · 3 dk okuma
Opencv'de Çizim Fonksiyonları

OpenCV Serisi 15/64
- 1. Boya Fırçası Olarak Fare
- 2. Canny Kenar Algılama
- 3. Görüntü Geçişleri
- 4. Görüntü Piramitleri
- 5. Görüntülerde Aritmetik İşlemler
- 6. Görüntülerle İlgili Temel İşlemler
- 7. Görüntünün Geometrik Dönüşümleri
- 8. Görüntüyü Yumuşatma - ( Smoothing Images )
- 9. Histogramlar
- 10. Konturler ( Contours )
- 11. Morfolojik Dönüşümler
- 12. Opencv Nedir Ve Kurulumu
- 13. Opencv Resim Işlemleri
- 14. Opencv Video Işlemleri
- 15. Opencv'de Çizim Fonksiyonları
- 16. Performans Ölçüm Ve Geliştirme Teknikleri
- 17. Renk Alanlarını Değiştirme
- 18. Renk Paleti Olarak Parça Çubuğu ( Trackbar )
- 19. Resim Eşikleme
- 20. Şablon Eşleştirme
- 21. Hough Doğru Dönüşümü
- 22. Hough Daire Dönüşümü
- 23. Fourier Dönüşümü
- 24. Histogram Eşitleme
- 25. 2B Histogramlar
- 26. Histogram Geri Projeksiyonu
- 27. Kontur Özellikleri
- 28. Kontur Nitelikleri
- 29. Konturlerle Daha Fazla İşlev
- 30. Kontur Hiyerarşisi
- 31. GrabCut ile Etkileşimli Ön Plan Çıkarma
- 32. Watershed Algoritması ile Görüntü Segmentasyonu
- 33. Özellikleri Anlamak
- 34. Harris Köşe Tespiti
- 35. Shi-Tomasi Köşe Dedektörü ve İzlenecek İyi Özellikler
- 36. SIFT'e Giriş (Ölçek Değişmez Özellik Dönüşümü)
- 37. SURF'e Giriş (Hızlandırılmış Sağlam Özellikler)
- 38. Köşe Tespiti için FAST Algoritması
- 39. BRIEF — İkili Sağlam Bağımsız Temel Özellikler
- 40. ORB (Yönlü FAST ve Döndürülmüş BRIEF)
- 41. Özellik Eşleştirme
- 42. Özellik Eşleştirme + Nesneleri Bulmak için Homografi
- 43. Meanshift ve Camshift ile Nesne Takibi
- 44. Optik Akış
- 45. Arka Plan Çıkarma
- 46. Kamera Kalibrasyonu
- 47. Poz Tahmini
- 48. Epipolar Geometri
- 49. Stereo Görüntülerden Derinlik Haritası
- 50. k-En Yakın Komşuyu Anlamak
- 51. kNN ile El Yazısı OCR
- 52. SVM'yi Anlamak
- 53. SVM ile El Yazısı OCR
- 54. K-Ortalamalar Kümeleme'yi Anlamak
- 55. OpenCV'de K-Ortalamalar Kümeleme
- 56. Görüntü Gürültü Giderme
- 57. Görüntü Onarımı (Inpainting)
- 58. Yüksek Dinamik Aralık (HDR) Görüntüleme
- 59. Haar Cascade ile Yüz Tespiti
- 60. pip ile OpenCV Kurulumu
- 61. Ubuntu'da OpenCV-Python Kurulumu
- 62. Fedora'da OpenCV-Python Kurulumu
- 63. Windows'ta OpenCV-Python Kurulumu
- 64. OpenCV-Python Bağlayıcıları Nasıl Çalışır?
Opencv’de Çizim Fonksiyonları
Hedefler
- OpenCV ile farklı geometrik şekilleri çizmeyi öğreneçeğiz
- Bu fonksiyonları öğreneceğiz: cv2.line (), cv2.circle (), cv2.rectangle (), cv2.ellipse (), cv2.putText () vb.
Kod
Yukarıdaki tüm fonksiyonlarda , aşağıda verilen şekilde ortak argümanlar göreceksiniz.
img : şekilleri çizmek istediğiniz görüntü color : şeklin rengi. BGR için tuble olarak geçer örneğin mavi için (255,0,0) , gri tonlama için sadece sayısal değeri geçin. thickness : çizgi veya çemberin kalınlığı, örneğin çevreler gibi kapalı şekiller için -1 geçerliyse şekli dolduracaktır. varsayılan kalınlık = 1 dir lineType : çizginin tipi, 8 bağlantılı, kenar yumuşatma hattı vb. Varsayılan olarak, 8 bağlantılı. cv2.LINE_AA, eğriler için harika görünen kenar yumuşatma hattı verir.
Çizgi çizimi
Bir çizgi çizmek için, çizginin başlama ve bitiş kordinatlarını vermeniz gerek. Biz bir siyah resim yaratacağız ve çizilen mavi çizgiyi sol üst köşeden sağ alt köşeye bir mavi çizgi çizeriz.
import numpy as np
import cv2
# siyah bir resim yaratıyoruz
img = np.zeros((512,512,3), np.uint8)
# 5 px kalınlığında bir diyagonal mavi çizgi çiziyoruz
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)Dikdörtgen çizimi
Bir dikdörtgen çizmek için, dikdörtgenin üst-sol köşe ve alt-sağ köşe’sine ihtiyacımız var. Bu defa resmin üst-sağ köşesinde yeşil bir dikdörtgen çizelim.
img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)Çember çizimi
Bir çember çizmek için, merkez koordinatlarına ve yarıçapına ihtiyacınız var, Yukarıda çizilen dikdörtgen içine bir daire çizeceğiz.
img = cv2.circle(img,(447,63), 63, (0,0,255), -1)Elips çizimi
Bir elips çizmek için, bir kaç argümana ihtiyacımız var,
Birinci argüman çizilmek istenilen resimdir, okunan resim dosyası veya okunan video dosyasının anlık verisidir. ikinci argüman, merkez konumu (x,y). üçüncü argüman, eksen uzunluklarıdır (büyük eksen uzunluğu, küçük eksen uzunluğu) angle(açı), elipsin saat yönünün tersine dönme açısıdır startAngle ve endAngle, elips yayının, ana eksenden saat yönünde ölçülen başlangıcını ve bitişini belirtir. Yani 0 ve 360 değerleri verirse, tam elips verir.
Daha fazla ayrıntı için, cv2.ellipse() belgelerine bakın. Aşağıdaki örnek, görüntünün merkezinde yarım elips çizmektedir.
img = cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)Çokgen Çizim
Bir çokgen çizmek için öncelikle köşelerin koordinatlarına ihtiyacınız vardır.Bu noktaları bir dizi ( array ) şekil haline getirin, köşe sayıları olan satırlar burada ROWSx1x2 dir ve int türünde olması gerekir.
Burada sarı renkte dört köşeli küçük bir çokgen çiziyoruz.
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
img = cv2.polylines(img,[pts],True,(0,255,255))Üçüncü argüman’ı False yaparsanız, kapalı bir şekil değil de tüm noktaları birleştiren bir çokgen alırsınız.
Resme metin eklemek
Metinleri resimlere yerleştirmek için aşağıdaki şeyleri belirtmeniz gerekir.
Yazmak istediğiniz veri Yazıları yerleştirmek istediğiniz yerin kordinatları Yazı tipi ( font type ) (Desteklenen fontlar için cv2.putText () dokümanlarını kontrol edin) Yazı tipi Ölçeği (yazı tipi boyutunu belirtir) renk, kalınlık, çizgi türü vb. düzenli şeyler. Daha iyi görünmek için lineType = cv2.LINE_AA önerilir. Şimdi resmimize beyaz renkte OpenCV yazalım.
font = cv2.FONT_HERSHEY_SIMPLEX # yazı tipimiz
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)
# ilk argüman yazı yazmak istediğimiz resim( veri )
# ikincisi yazılacak olan veri
# üçüncü argüman kordinatlar
# dördüncü argüman fontumuz
# altıncı argüman metin rengi
# beşinci ve yedinci argüman kalınlık vsSonuç
Hakan Çelik

