{"id":30136,"date":"2025-09-24T04:40:24","date_gmt":"2025-09-24T01:40:24","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/"},"modified":"2025-09-24T04:40:24","modified_gmt":"2025-09-24T01:40:24","slug":"opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/","title":{"rendered":"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma"},"content":{"rendered":"<p># OpenCV ve Python ile Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma<\/p>\n<p><strong>Meta A\u00e7\u0131klamas\u0131:<\/strong> OpenCV ve Python kullanarak resimlerden y\u00fczleri nas\u0131l alg\u0131lay\u0131p \u00e7\u0131karaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frenin. Yeni ba\u015flayanlar i\u00e7in basit \u00f6rneklerden ileri seviye performans optimizasyonuna kadar kapsaml\u0131 bir rehber.  Y\u00fcz tan\u0131ma, y\u00fcz alg\u0131lama ve OpenCV k\u00fct\u00fcphanesinin g\u00fcc\u00fcn\u00fc ke\u015ffedin.<\/p>\n<p>G\u00fcn\u00fcm\u00fczde y\u00fcz tan\u0131ma teknolojisi, g\u00fcvenlik sistemlerinden sosyal medya uygulamalar\u0131na kadar bir\u00e7ok alanda kullan\u0131l\u0131yor.  Peki, bu teknolojinin temelinde yatan y\u00fcz alg\u0131lama ve \u00e7\u0131karma i\u015flemlerini nas\u0131l ger\u00e7ekle\u015ftiriyoruz? Bu makalede, OpenCV ve Python&#8217;\u0131n g\u00fc\u00e7l\u00fc kombinasyonunu kullanarak resimlerden y\u00fczleri alg\u0131lama ve \u00e7\u0131karma y\u00f6ntemlerini ad\u0131m ad\u0131m, yeni ba\u015flayanlardan ileri seviye kullan\u0131c\u0131lara kadar her seviyeye uygun bir \u015fekilde a\u00e7\u0131klayaca\u011f\u0131z.  Farkl\u0131 zorluk seviyelerindeki \u00f6rneklerle, ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ele alacak ve performans optimizasyonu tekniklerini payla\u015faca\u011f\u0131z.<\/p>\n<p><strong>1. Y\u00fcz Alg\u0131laman\u0131n Temelleri: OpenCV ve Haar Cascades<\/strong><\/p>\n<p>Y\u00fcz alg\u0131lama, bir g\u00f6r\u00fcnt\u00fcdeki y\u00fczleri tespit etme i\u015flemidir. Bu i\u015flem, genellikle makine \u00f6\u011frenmesi teknikleri kullan\u0131larak ger\u00e7ekle\u015ftirilir.  OpenCV (Open Source Computer Vision Library), bu konuda g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.  OpenCV&#8217;nin sundu\u011fu Haar Cascades, \u00f6nceden e\u011fitilmi\u015f bir s\u0131n\u0131fland\u0131r\u0131c\u0131d\u0131r ve y\u00fczleri di\u011fer nesnelerden ay\u0131rt etmek i\u00e7in kullan\u0131l\u0131r.  Bu s\u0131n\u0131fland\u0131r\u0131c\u0131lar, y\u00fcz\u00fcn belirli \u00f6zelliklerini (g\u00f6zler, burun, a\u011f\u0131z gibi) temsil eden dikd\u00f6rtgenler (kareler) koleksiyonlar\u0131 olarak d\u00fc\u015f\u00fcn\u00fclebilir.  Algoritma, bu dikd\u00f6rtgenlerin yo\u011funluk farkl\u0131l\u0131klar\u0131n\u0131 analiz ederek bir y\u00fcz olup olmad\u0131\u011f\u0131n\u0131 belirler.<\/p>\n<p>Haar Cascades&#8217;in nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamak i\u00e7in, y\u00fcz\u00fcn belirli \u00f6zelliklerinin (\u00f6rne\u011fin, g\u00f6zlerin koyu renkli olmas\u0131) di\u011fer b\u00f6lgelerden farkl\u0131 yo\u011funluk \u00f6zelliklerine sahip oldu\u011funu d\u00fc\u015f\u00fcn\u00fcn.  S\u0131n\u0131fland\u0131r\u0131c\u0131, bu yo\u011funluk farkl\u0131l\u0131klar\u0131n\u0131 analiz ederek y\u00fczleri tespit eder.  Ancak, \u0131\u015f\u0131kland\u0131rma de\u011fi\u015fiklikleri, y\u00fcz pozisyonlar\u0131 ve y\u00fcz ifadeleri gibi fakt\u00f6rler alg\u0131lamay\u0131 etkileyebilir.<\/p>\n<p><strong>2.  OpenCV ve Python Kurulumu: \u0130lk Ad\u0131mlar<\/strong><\/p>\n<p>\u00d6ncelikle, OpenCV ve Python&#8217;\u0131 kurman\u0131z gerekiyor.  E\u011fer Python&#8217;\u0131n\u0131z yoksa, [https:\/\/www.python.org\/](https:\/\/www.python.org\/) adresinden indirebilirsiniz.  OpenCV&#8217;yi ise pip kullanarak kolayca kurabilirsiniz:<\/p>\n<pre class=\"language-bash\"><code>pip install opencv-python<\/code><\/pre>\n<p>Kurulumdan sonra, basit bir kod \u00f6rne\u011fiyle OpenCV&#8217;nin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olabilirsiniz:<\/p>\n<pre class=\"language-python\"><code>import cv2\n\nimg = cv2.imread(&quot;image.jpg&quot;) # Resminizin yolunu buraya girin\ncv2.imshow(&quot;Image&quot;, img)\ncv2.waitKey(0)\ncv2.destroyAllWindows()<\/code><\/pre>\n<p>Bu kod, &#8220;image.jpg&#8221; adl\u0131 resmi y\u00fckleyecek ve ekranda g\u00f6r\u00fcnt\u00fcleyecektir.  &#8220;image.jpg&#8221; dosyas\u0131n\u0131 kendi resim dosyan\u0131zla de\u011fi\u015ftirmeyi unutmay\u0131n.<\/p>\n<p><strong>3.  Yeni Ba\u015flayanlar \u0130\u00e7in Y\u00fcz Alg\u0131lama: Ad\u0131m Ad\u0131m Uygulama<\/strong><\/p>\n<p>\u015eimdi, basit bir y\u00fcz alg\u0131lama uygulamas\u0131 yapal\u0131m.  \u00d6ncelikle, \u00f6nceden e\u011fitilmi\u015f bir Haar Cascade s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131n\u0131 indirmemiz gerekiyor.  OpenCV, bu s\u0131n\u0131fland\u0131r\u0131c\u0131lar\u0131 i\u00e7erir, bu y\u00fczden ayr\u0131 indirme i\u015flemine gerek yoktur.  A\u015fa\u011f\u0131daki kod, bir resimdeki t\u00fcm y\u00fczleri alg\u0131lar ve dikd\u00f6rtgenlerle i\u015faretler:<\/p>\n<pre class=\"language-python\"><code>import cv2\n\nface_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')\nimg = cv2.imread(&quot;image.jpg&quot;)\ngray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\nfaces = face_cascade.detectMultiScale(gray, 1.1, 4)\n\nfor (x, y, w, h) in faces:\n    cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)\n\ncv2.imshow('img', img)\ncv2.waitKey(0)\ncv2.destroyAllWindows()<\/code><\/pre>\n<p>Bu kod, \u00f6ncelikle Haar Cascade s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131n\u0131 y\u00fckler, ard\u0131ndan resmi gri tonlamaya \u00e7evirir ve <code class=\"language-\">detectMultiScale<\/code> fonksiyonunu kullanarak y\u00fczleri alg\u0131lar.  Son olarak, alg\u0131lanan y\u00fczlerin etraf\u0131na dikd\u00f6rtgenler \u00e7izer ve resmi g\u00f6r\u00fcnt\u00fcler.<\/p>\n<p><strong>4. Orta Seviye: Ger\u00e7ek D\u00fcnya \u00d6rne\u011fi ve Optimizasyon \u0130pu\u00e7lar\u0131<\/strong><\/p>\n<p>Yukar\u0131daki \u00f6rnek, basit bir senaryo i\u00e7in yeterli olabilir.  Ancak, ger\u00e7ek d\u00fcnya uygulamalar\u0131nda daha karma\u015f\u0131k senaryolarla kar\u015f\u0131la\u015fabiliriz.  \u00d6rne\u011fin, farkl\u0131 \u0131\u015f\u0131kland\u0131rma ko\u015fullar\u0131nda, farkl\u0131 a\u00e7\u0131lardan \u00e7ekilen resimlerde veya kalabal\u0131k ortamlarda y\u00fcz alg\u0131lama performans\u0131 d\u00fc\u015febilir.<\/p>\n<p>Bu sorunlar\u0131 \u00e7\u00f6zmek i\u00e7in, farkl\u0131 Haar Cascade s\u0131n\u0131fland\u0131r\u0131c\u0131lar\u0131n\u0131 deneyebilir (\u00f6rne\u011fin, profil y\u00fczleri i\u00e7in \u00f6zel s\u0131n\u0131fland\u0131r\u0131c\u0131lar), \u00f6l\u00e7eklendirme parametrelerini ayarlayabilir veya daha geli\u015fmi\u015f algoritmalar kullanabiliriz.  Ayr\u0131ca, g\u00f6r\u00fcnt\u00fc \u00f6n i\u015fleme teknikleri (\u00f6rne\u011fin, g\u00fcr\u00fclt\u00fc azaltma) performans\u0131 art\u0131rabilir.  \u00d6rne\u011fin, bir web kameras\u0131 kullanarak ger\u00e7ek zamanl\u0131 y\u00fcz alg\u0131lama uygulamas\u0131 geli\u015ftirebiliriz:<\/p>\n<pre class=\"language-python\"><code>import cv2\n\nface_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')\nvideo_capture = cv2.VideoCapture(0) # 0, varsay\u0131lan web kameras\u0131n\u0131 temsil eder\n\nwhile True:\n    ret, frame = video_capture.read()\n    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n    faces = face_cascade.detectMultiScale(gray, 1.1, 5)\n\n    for (x, y, w, h) in faces:\n        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)\n\n    cv2.imshow('Video', frame)\n    if cv2.waitKey(1) &amp; 0xFF == ord('q'):\n        break\n\nvideo_capture.release()\ncv2.destroyAllWindows()<\/code><\/pre>\n<p>Bu kod, web kameras\u0131ndan s\u00fcrekli olarak kareler al\u0131r, y\u00fczleri alg\u0131lar ve sonu\u00e7lar\u0131 ekranda g\u00f6r\u00fcnt\u00fcler.  &#8216;q&#8217; tu\u015funa basarak uygulamay\u0131 sonland\u0131rabilirsiniz.  Performans optimizasyonu i\u00e7in, gereksiz i\u015flemleri azaltmak ve daha verimli algoritmalar kullanmak \u00f6nemlidir.<\/p>\n<p><strong>5. \u0130leri D\u00fczey: Performans Analizi ve Edge Case&#8217;ler<\/strong><\/p>\n<p>Ger\u00e7ek d\u00fcnya uygulamalar\u0131nda, y\u00fcz alg\u0131lama sisteminin performans\u0131n\u0131 de\u011ferlendirmek ve olas\u0131 sorunlar\u0131 tespit etmek \u00f6nemlidir.  Performans analizi, i\u015flem s\u00fcresi, do\u011fruluk ve yanl\u0131\u015f pozitif\/negatif oranlar\u0131n\u0131 i\u00e7erir.  Yanl\u0131\u015f pozitifler, y\u00fcz olmayan nesnelerin y\u00fcz olarak yanl\u0131\u015fl\u0131kla alg\u0131lanmas\u0131d\u0131r, yanl\u0131\u015f negatifler ise ger\u00e7ek y\u00fczlerin alg\u0131lanamamas\u0131d\u0131r.<\/p>\n<p>Edge case&#8217;ler, beklenmedik veya nadir durumlar\u0131 temsil eder.  \u00d6rne\u011fin, a\u015f\u0131r\u0131 d\u00fc\u015f\u00fck \u0131\u015f\u0131k ko\u015fullar\u0131, k\u0131smen gizlenmi\u015f y\u00fczler veya al\u0131\u015f\u0131lmad\u0131k y\u00fcz ifadeleri alg\u0131lama performans\u0131n\u0131 olumsuz etkileyebilir.  Bu durumlar\u0131 ele almak i\u00e7in, daha geli\u015fmi\u015f algoritmalar (\u00f6rne\u011fin, derin \u00f6\u011frenme tabanl\u0131 y\u00f6ntemler), daha b\u00fcy\u00fck ve \u00e7e\u015fitli veri setleri kullanarak e\u011fitilmi\u015f s\u0131n\u0131fland\u0131r\u0131c\u0131lar veya \u00f6n i\u015fleme teknikleri kullan\u0131labilir.  Ayr\u0131ca, y\u00fcz hizalama ve y\u00fcz noktas\u0131 tespiti gibi ek i\u015flemler do\u011frulu\u011fu art\u0131rabilir.<\/p>\n<p><strong>6.  Derin \u00d6\u011frenme ile Y\u00fcz Alg\u0131lama<\/strong><\/p>\n<p>Haar Cascades, h\u0131zl\u0131 ve basit bir y\u00f6ntem olsa da, derin \u00f6\u011frenme tabanl\u0131 y\u00f6ntemler daha y\u00fcksek do\u011fruluk oranlar\u0131 sa\u011flayabilir.  Y\u00fcz alg\u0131lama i\u00e7in pop\u00fcler derin \u00f6\u011frenme mimarileri aras\u0131nda MTCNN (Multi-Task Cascaded Convolutional Networks) ve RetinaFace bulunur. Bu modeller, daha karma\u015f\u0131k y\u00fcz \u00f6zelliklerini \u00f6\u011frenerek daha robust bir alg\u0131lama sa\u011flar.  Ancak, derin \u00f6\u011frenme modelleri genellikle daha fazla hesaplama g\u00fcc\u00fc gerektirir.<\/p>\n<p><strong>7.  Y\u00fcz \u00c7\u0131karma: Alg\u0131lanan Y\u00fczlerin Kesilmesi<\/strong><\/p>\n<p>Y\u00fczleri alg\u0131lad\u0131ktan sonra, bunlar\u0131 resimden ay\u0131r\u0131p ayr\u0131 dosyalar olarak kaydedebiliriz.  Bu i\u015flem, y\u00fcz tan\u0131ma veya di\u011fer y\u00fcz analizi uygulamalar\u0131 i\u00e7in gereklidir.  <code class=\"language-\">detectMultiScale<\/code> fonksiyonunun d\u00f6nd\u00fcrd\u00fc\u011f\u00fc koordinatlar\u0131 kullanarak, y\u00fcz b\u00f6lgelerini resimden kesebiliriz:<\/p>\n<pre class=\"language-python\"><code>import cv2\n\n# ... (Y\u00fcz alg\u0131lama kodu) ...\n\nfor (x, y, w, h) in faces:\n    face_roi = gray[y:y+h, x:x+w]\n    cv2.imwrite(f&quot;face_{i}.jpg&quot;, face_roi) # Her y\u00fcz i\u00e7in ayr\u0131 dosya kaydeder.\n    i += 1<\/code><\/pre>\n<p><strong>8.  Performans Optimizasyonu<\/strong><\/p>\n<p>Y\u00fcz alg\u0131lama uygulamalar\u0131n\u0131n performans\u0131n\u0131 optimize etmek i\u00e7in \u00e7e\u015fitli y\u00f6ntemler kullan\u0131labilir:<\/p>\n<p>* <strong>Daha az hesaplama gerektiren s\u0131n\u0131fland\u0131r\u0131c\u0131lar kullan\u0131n:<\/strong>  Daha k\u00fc\u00e7\u00fck ve daha h\u0131zl\u0131 s\u0131n\u0131fland\u0131r\u0131c\u0131lar se\u00e7in.<br \/>\n* <strong>G\u00f6r\u00fcnt\u00fc boyutunu k\u00fc\u00e7\u00fclt\u00fcn:<\/strong>  Y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fckl\u00fc g\u00f6r\u00fcnt\u00fclerde i\u015flem yapmak daha uzun s\u00fcrer.  G\u00f6r\u00fcnt\u00fcy\u00fc k\u00fc\u00e7\u00fcltmek i\u015flem s\u00fcresini azaltabilir.<br \/>\n* <strong>\u00c7ok i\u015f par\u00e7ac\u0131kl\u0131 i\u015fleme:<\/strong>  Birden fazla \u00e7ekirde\u011fi kullanarak i\u015flemleri paralelize edebilirsiniz.<br \/>\n* <strong>GPU kullan\u0131m\u0131:<\/strong>  Derin \u00f6\u011frenme tabanl\u0131 y\u00f6ntemler i\u00e7in GPU kullan\u0131m\u0131 performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.<\/p>\n<p><strong>9.  Sonu\u00e7<\/strong><\/p>\n<p>Bu makalede, OpenCV ve Python kullanarak resimlerden y\u00fczleri alg\u0131lama ve \u00e7\u0131karma y\u00f6ntemlerini inceledik.  Yeni ba\u015flayanlardan ileri seviye kullan\u0131c\u0131lara kadar farkl\u0131 seviyelere uygun \u00f6rnekler ve optimizasyon ipu\u00e7lar\u0131 payla\u015ft\u0131k.  Ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ele alarak, farkl\u0131 zorluklarla ba\u015fa \u00e7\u0131kman\u0131n yollar\u0131n\u0131 g\u00f6sterdik.  Unutmay\u0131n ki, y\u00fcz alg\u0131lama, s\u00fcrekli geli\u015fen bir aland\u0131r ve daha geli\u015fmi\u015f teknikler ve algoritmalar s\u00fcrekli olarak geli\u015ftirilmektedir.  Bu makale, bu alanda sa\u011flam bir temel olu\u015fturman\u0131za yard\u0131mc\u0131 olmay\u0131 ama\u00e7lamaktad\u0131r.<\/p>\n<p><strong>S\u0131k\u00e7a Sorulan Sorular<\/strong><\/p>\n<p>1. <strong>Hangi Haar Cascade s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131 en iyisidir?<\/strong>  <code class=\"language-\">haarcascade_frontalface_default.xml<\/code>, genel ama\u00e7l\u0131 kullan\u0131m i\u00e7in iyi bir se\u00e7enektir.  Ancak, farkl\u0131 senaryolar i\u00e7in farkl\u0131 s\u0131n\u0131fland\u0131r\u0131c\u0131lar daha uygun olabilir.<\/p>\n<p>2. <strong>Y\u00fcz alg\u0131lama do\u011frulu\u011funu nas\u0131l art\u0131rabilirim?<\/strong>  Daha b\u00fcy\u00fck ve daha \u00e7e\u015fitli bir veri setiyle e\u011fitilmi\u015f s\u0131n\u0131fland\u0131r\u0131c\u0131lar kullanabilir, g\u00f6r\u00fcnt\u00fc \u00f6n i\u015fleme teknikleri uygulayabilir ve daha geli\u015fmi\u015f algoritmalar kullanabilirsiniz.<\/p>\n<p>3. <strong>Y\u00fcz alg\u0131lama i\u00e7in derin \u00f6\u011frenme kullanman\u0131n avantajlar\u0131 nelerdir?<\/strong>  Derin \u00f6\u011frenme, daha y\u00fcksek do\u011fruluk oranlar\u0131 ve daha karma\u015f\u0131k y\u00fcz \u00f6zelliklerinin alg\u0131lanmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>4. <strong>OpenCV&#8217;nin di\u011fer y\u00fcz alg\u0131lama fonksiyonlar\u0131 nelerdir?<\/strong>  OpenCV, <code class=\"language-\">detectMultiScale<\/code> fonksiyonuna ek olarak, y\u00fcz noktas\u0131 tespiti ve y\u00fcz hizalama gibi fonksiyonlar da sunar.<\/p>\n<p>5. <strong>Ger\u00e7ek zamanl\u0131 y\u00fcz alg\u0131lama i\u00e7in hangi donan\u0131m \u00f6nerilir?<\/strong>  Ger\u00e7ek zamanl\u0131 performans i\u00e7in g\u00fc\u00e7l\u00fc bir i\u015flemci ve tercihen bir GPU \u00f6nerilir.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"# OpenCV ve Python ile Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma Meta A\u00e7\u0131klamas\u0131: OpenCV ve Python kullanarak resimlerden y\u00fczleri nas\u0131l&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-30136","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma<\/title>\n<meta name=\"description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma\" \/>\n<meta property=\"og:description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-24T01:40:24+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma\",\"datePublished\":\"2025-09-24T01:40:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/\"},\"wordCount\":1445,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/\",\"name\":\"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-24T01:40:24+00:00\",\"description\":\"Hi\u00e7bir etiketi bulunamad\u0131.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma","description":"Hi\u00e7bir etiketi bulunamad\u0131.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/","og_locale":"tr_TR","og_type":"article","og_title":"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma","og_description":"Hi\u00e7bir etiketi bulunamad\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-24T01:40:24+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"8 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma","datePublished":"2025-09-24T01:40:24+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/"},"wordCount":1445,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/","url":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/","name":"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-24T01:40:24+00:00","description":"Hi\u00e7bir etiketi bulunamad\u0131.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/opencv-ve-python-ile-goruntulerden-yuz-algilama-ve-cikarma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"OpenCV ve Python ile G\u00f6r\u00fcnt\u00fclerden Y\u00fcz Alg\u0131lama ve \u00c7\u0131karma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30136"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30136\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}