<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Hakan Çelik&apos;s Blog (EN)</title><description>Articles on Python, Django, OpenCV, Cloud and more.</description><link>https://hakancelik.dev</link><item><title>Building Multi-Agent Systems: Orchestration and Parallelism</title><link>https://hakancelik.dev/en/building-multi-agent-systems-orchestration-and-parallelism</link><guid isPermaLink="true">https://hakancelik.dev/en/building-multi-agent-systems-orchestration-and-parallelism</guid><description>A single agent hits three walls: context limits, attention drift, and sequential bottlenecks. Multi-agent systems solve all three — the orchestrator decomposes, subagents run in parallel, each with its own clean context.</description><pubDate>Tue, 28 Apr 2026 14:00:00 GMT</pubDate></item><item><title>MCP: The REST API for AI Tools</title><link>https://hakancelik.dev/en/model-context-protocol-the-rest-api-for-ai-tools</link><guid isPermaLink="true">https://hakancelik.dev/en/model-context-protocol-the-rest-api-for-ai-tools</guid><description>Every AI integration used to be custom-built. MCP changes that: write a tool once as an MCP server, and every MCP-compatible AI application can use it.</description><pubDate>Mon, 27 Apr 2026 14:00:00 GMT</pubDate></item><item><title>AI Agents: Models That Use Tools and Make Their Own Decisions</title><link>https://hakancelik.dev/en/ai-agents-models-that-use-tools-and-make-decisions</link><guid isPermaLink="true">https://hakancelik.dev/en/ai-agents-models-that-use-tools-and-make-decisions</guid><description>A language model takes a question and returns an answer. An AI agent takes a goal, makes a plan, uses tools, and produces a result. That difference turns AI from a chatbot into a collaborator.</description><pubDate>Sun, 26 Apr 2026 14:00:00 GMT</pubDate></item><item><title>Fine-Tuning: When and How to Customize an AI Model</title><link>https://hakancelik.dev/en/fine-tuning-when-and-how-to-customize-an-ai-model</link><guid isPermaLink="true">https://hakancelik.dev/en/fine-tuning-when-and-how-to-customize-an-ai-model</guid><description>Fine-tuning isn&apos;t always the answer — most of the time it isn&apos;t. But when it is, nothing else comes close. Here&apos;s when to use it, when RAG is the better call, and why LoRA changed everything.</description><pubDate>Sun, 26 Apr 2026 12:00:00 GMT</pubDate></item><item><title>Prompt Engineering: How to Actually Talk to AI Models</title><link>https://hakancelik.dev/en/prompt-engineering-how-to-talk-to-ai-models</link><guid isPermaLink="true">https://hakancelik.dev/en/prompt-engineering-how-to-talk-to-ai-models</guid><description>The same model, the same question, worded differently — completely different results. That&apos;s not luck. How you frame your prompt directly determines the output you get.</description><pubDate>Sun, 26 Apr 2026 10:00:00 GMT</pubDate></item><item><title>What Is RAG? Giving AI a Memory It Can Actually Use</title><link>https://hakancelik.dev/en/what-is-rag-giving-ai-a-memory</link><guid isPermaLink="true">https://hakancelik.dev/en/what-is-rag-giving-ai-a-memory</guid><description>Before I learned about RAG, I was dumping raw context into AI prompts and getting flooded with false positives. RAG changed everything. And it turns out Cursor and Claude Code use it too — that indexing progress bar isn&apos;t just for show.</description><pubDate>Sun, 26 Apr 2026 08:00:00 GMT</pubDate></item><item><title>What Is a Token? How AI Models Read Text and Charge You for It</title><link>https://hakancelik.dev/en/what-is-a-token-how-ai-models-read-text-and-charge-you-for-it</link><guid isPermaLink="true">https://hakancelik.dev/en/what-is-a-token-how-ai-models-read-text-and-charge-you-for-it</guid><description>AI models don&apos;t read text word by word or character by character — they read in tokens. Understanding this one concept explains context limits, pricing, and why models &apos;forget&apos; things mid-conversation.</description><pubDate>Sun, 26 Apr 2026 06:00:00 GMT</pubDate></item><item><title>What You Actually Download When You Pull an AI Model</title><link>https://hakancelik.dev/en/what-you-actually-download-when-you-pull-an-ai-model</link><guid isPermaLink="true">https://hakancelik.dev/en/what-you-actually-download-when-you-pull-an-ai-model</guid><description>AI models are compiled binaries. Just like a compiled C program, a trained model is an artifact that stands independent of its source — a ready-to-execute brain specialized for a task. Here&apos;s what that really means.</description><pubDate>Sun, 26 Apr 2026 04:00:00 GMT</pubDate></item><item><title>Understanding Python Classes</title><link>https://hakancelik.dev/en/understanding-python-classes</link><guid isPermaLink="true">https://hakancelik.dev/en/understanding-python-classes</guid><description>In Python, everything is an object and every object has a type — including primitives, functions, and classes themselves. type() and __class__ reveal this relationship.</description><pubDate>Thu, 30 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Run Methods Order In Python</title><link>https://hakancelik.dev/en/run-methods-order-in-python</link><guid isPermaLink="true">https://hakancelik.dev/en/run-methods-order-in-python</guid><description>Which method runs when in Python metaclasses? The execution order of __prepare__, __new__, __init__, and __call__ during class definition and instance creation.</description><pubDate>Thu, 16 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Run Methods Order In Python With More Explanation</title><link>https://hakancelik.dev/en/run-methods-order-in-python-with-more-explanation</link><guid isPermaLink="true">https://hakancelik.dev/en/run-methods-order-in-python-with-more-explanation</guid><description>The execution order of metaclass methods together with their full argument lists. Follow step by step which values arrive at each method.</description><pubDate>Thu, 02 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Tenses in English: An Overview</title><link>https://hakancelik.dev/en/tenses-in-english-an-overview</link><guid isPermaLink="true">https://hakancelik.dev/en/tenses-in-english-an-overview</guid><description>Past simple tense _Used to describe actions or events that happened at a specific point in the past._ Examples; I walked to the store. (Meaning: I traveled to the store on foot in the past.) She calle</description><pubDate>Wed, 01 Mar 2023 00:00:00 GMT</pubDate></item><item><title>More Accurate Meta Classes Without Type</title><link>https://hakancelik.dev/en/more-accurate-meta-classes-without-type</link><guid isPermaLink="true">https://hakancelik.dev/en/more-accurate-meta-classes-without-type</guid><description>A more complete metaclass implementation without deriving from type: a two-phase lifecycle managed by __call__, and delegation of __str__ and attribute access to the namespace.</description><pubDate>Thu, 16 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Prompts for Learning English with ChatGPT</title><link>https://hakancelik.dev/en/prompts-for-learning-english-with-chatgpt</link><guid isPermaLink="true">https://hakancelik.dev/en/prompts-for-learning-english-with-chatgpt</guid><description>How do you use ChatGPT to learn English? Ready-to-use prompt examples covering everything from verb tenses and vocabulary to grammar correction and conversation practice.</description><pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate></item><item><title>namespace[&apos;attr&apos;] = 1</title><link>https://hakancelik.dev/en/more-accurate-dynamic-class-creation</link><guid isPermaLink="true">https://hakancelik.dev/en/more-accurate-dynamic-class-creation</guid><description>To see how Python truly processes a class statement: get a namespace with type.__prepare__, execute the body with exec, then build the class with type().</description><pubDate>Thu, 02 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Modals: An Overview</title><link>https://hakancelik.dev/en/models-an-overview</link><guid isPermaLink="true">https://hakancelik.dev/en/models-an-overview</guid><description>Modal verbs are a type of auxiliary verb that is used to indicate modality, which describes the speaker&apos;s attitude or feelings about the action or state being expressed in the main verb. Some common m</description><pubDate>Wed, 01 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Metaclasses In Python</title><link>https://hakancelik.dev/en/metaclasses-in-python</link><guid isPermaLink="true">https://hakancelik.dev/en/metaclasses-in-python</guid><description>A metaclass is a class whose instances are classes. Just as type produces classes like int or str, a custom metaclass produces its own classes in the same way.</description><pubDate>Thu, 19 Jan 2023 00:00:00 GMT</pubDate></item><item><title>What Is Serverless?</title><link>https://hakancelik.dev/en/serverless-nedir</link><guid isPermaLink="true">https://hakancelik.dev/en/serverless-nedir</guid><description>Serverless Computing is also known as FaaS or Function As a Service.</description><pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Meta Classes Without Type</title><link>https://hakancelik.dev/en/meta-classes-without-type</link><guid isPermaLink="true">https://hakancelik.dev/en/meta-classes-without-type</guid><description>Is it possible to write a metaclass without deriving from type? Yes — but what you end up with is not a real Python class; it is an instance of Meta.</description><pubDate>Thu, 05 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Deploying to AWS Lambda with SAM Using a Custom Docker Image</title><link>https://hakancelik.dev/en/custom-image-kullanarak-aws-lambda-uzerine-sam-ile-deploy</link><guid isPermaLink="true">https://hakancelik.dev/en/custom-image-kullanarak-aws-lambda-uzerine-sam-ile-deploy</guid><description>When deploying a serverless application on AWS Lambda using a Docker image, AWS provides a base image to make your work easier.</description><pubDate>Tue, 27 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Invisible Metaclasses In Python</title><link>https://hakancelik.dev/en/invisible-metaclasses-in-python</link><guid isPermaLink="true">https://hakancelik.dev/en/invisible-metaclasses-in-python</guid><description>Every class in Python has a metaclass. If you don&apos;t specify one explicitly, type steps in as the default — invisible, but always there.</description><pubDate>Thu, 22 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Cloud Computing</title><link>https://hakancelik.dev/en/cloud-computing</link><guid isPermaLink="true">https://hakancelik.dev/en/cloud-computing</guid><description>Cloud computing is the on-demand delivery of technology resources over the Internet with pay-as-you-go pricing. Instead of buying, owning, and maintaining physical data centers and servers, you can access technology services such as computing power, storage, and databases on an as-needed basis from a cloud provider like Amazon Web Services (AWS).</description><pubDate>Tue, 13 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Singleton in Python</title><link>https://hakancelik.dev/en/singleton-in-python</link><guid isPermaLink="true">https://hakancelik.dev/en/singleton-in-python</guid><description>Two ways to implement the Singleton pattern with a metaclass in Python — and the critical difference between them: in one, subclasses are separate objects; in the other, they are the same object.</description><pubDate>Thu, 08 Dec 2022 00:00:00 GMT</pubDate></item><item><title>How to Deploy a Serverless Application on AWS Lambda</title><link>https://hakancelik.dev/en/aws-lambda-uzerine-serverless-uygulama-deployu-nasil-yapilir</link><guid isPermaLink="true">https://hakancelik.dev/en/aws-lambda-uzerine-serverless-uygulama-deployu-nasil-yapilir</guid><description>There are many options for deploying a serverless application on AWS Lambda. Here are the ones I know of:</description><pubDate>Tue, 29 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Register Classes in Python</title><link>https://hakancelik.dev/en/register-classes-in-python</link><guid isPermaLink="true">https://hakancelik.dev/en/register-classes-in-python</guid><description>Three ways to automatically register subclasses: metaclass __new__, __init_subclass__, and class decorator. Which one is more appropriate for which situation?</description><pubDate>Thu, 24 Nov 2022 00:00:00 GMT</pubDate></item><item><title>How to Deploy a FastAPI Application on AWS Lambda with SAM</title><link>https://hakancelik.dev/en/aws-lambda-uzerine-fastapi-uygulamasini-sam-ile-nasil-deploy-edebilirim</link><guid isPermaLink="true">https://hakancelik.dev/en/aws-lambda-uzerine-fastapi-uygulamasini-sam-ile-nasil-deploy-edebilirim</guid><description>If you wrote your serverless application with FastAPI and want to run it on AWS Lambda, you need to make it compatible with Lambda. The library you need for this is mangum.</description><pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Modeling a Class with a Metaclass</title><link>https://hakancelik.dev/en/modeling-a-class-with-a-metaclass</link><guid isPermaLink="true">https://hakancelik.dev/en/modeling-a-class-with-a-metaclass</guid><description>A dataclass-like structure built with a metaclass: automatic __slots__ derived from type annotations and runtime type validation inside __call__.</description><pubDate>Thu, 10 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Serverless and Lambda on AWS</title><link>https://hakancelik.dev/en/aws-de-serverless-ve-lambda</link><guid isPermaLink="true">https://hakancelik.dev/en/aws-de-serverless-ve-lambda</guid><description>Lambda is a compute service that lets you run code without managing servers.</description><pubDate>Tue, 01 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Logging Namespace</title><link>https://hakancelik.dev/en/logging-namespace</link><guid isPermaLink="true">https://hakancelik.dev/en/logging-namespace</guid><description>Automatically record every assignment in the class body using the metaclass __prepare__ method — discover the power of a customized namespace.</description><pubDate>Thu, 27 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Define Method If Condition True</title><link>https://hakancelik.dev/en/define-method-if-condition-true</link><guid isPermaLink="true">https://hakancelik.dev/en/define-method-if-condition-true</guid><description>The implementation of the defineif library: a customized namespace via __prepare__ that silently defines or skips methods at class creation time based on a boolean condition.</description><pubDate>Thu, 13 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Auto Slots</title><link>https://hakancelik.dev/en/auto-slots</link><guid isPermaLink="true">https://hakancelik.dev/en/auto-slots</guid><description>Automatically generate __slots__ from __init__ parameters using a metaclass and co_names.</description><pubDate>Thu, 29 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Dynamic Class Creation</title><link>https://hakancelik.dev/en/dynamic-class-creation</link><guid isPermaLink="true">https://hakancelik.dev/en/dynamic-class-creation</guid><description>Writing `class Example: ...` and calling `type(&apos;Example&apos;, (), {...})` produce exactly the same result. Python transforms the class keyword into a type() call behind the scenes.</description><pubDate>Thu, 15 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Extending the User Model</title><link>https://hakancelik.dev/en/user-modelini-genisletmek</link><guid isPermaLink="true">https://hakancelik.dev/en/user-modelini-genisletmek</guid><description>As you know, Django comes with a user model that has certain properties — name, last name, email, password, etc. While these fields save the day in most cases, sometimes they&apos;re not enough. Depending on the project you&apos;re building, users may need to have more properties. That&apos;s what we&apos;ll achieve by extending the user model.</description><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate></item><item><title>How to Create Custom Management Commands</title><link>https://hakancelik.dev/en/ozel-yonetim-komutlar-nasl-yaplr</link><guid isPermaLink="true">https://hakancelik.dev/en/ozel-yonetim-komutlar-nasl-yaplr</guid><description>Everyone uses this part of Django. Even those who have never used Django and are just starting to learn it use this area first — they open a console from the project directory and immediately start a new project to begin coding.</description><pubDate>Tue, 02 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Building Login, Register, and Logout Pages</title><link>https://hakancelik.dev/en/login-register-ve-logout-sayfalarinin-yapimi</link><guid isPermaLink="true">https://hakancelik.dev/en/login-register-ve-logout-sayfalarinin-yapimi</guid><description>In this post, instead of writing CSS for the page design, I&apos;ll use a front-end framework called Uikit. The code I use here comes from a project called Eatingword that I&apos;m developing to keep my Django skills fresh and learn new things.</description><pubDate>Tue, 19 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Submitting a PR</title><link>https://hakancelik.dev/en/pr-goendermek</link><guid isPermaLink="true">https://hakancelik.dev/en/pr-goendermek</guid><description>How do you make your first contribution to CPython? From finding an issue and forking the repo, to making a fix and opening a PR — a step-by-step walkthrough with a real example.</description><pubDate>Fri, 15 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Using Dumpdata and Loaddata</title><link>https://hakancelik.dev/en/dumpdata-ve-loaddata-kullanm</link><guid isPermaLink="true">https://hakancelik.dev/en/dumpdata-ve-loaddata-kullanm</guid><description>Main source | djangoproject.com/en/2.1/</description><pubDate>Tue, 05 Jul 2022 00:00:00 GMT</pubDate></item><item><title>CLA</title><link>https://hakancelik.dev/en/cla</link><guid isPermaLink="true">https://hakancelik.dev/en/cla</guid><description>Before contributing to CPython, you need to sign the PSF Contributor Agreement. In this short post, I explain what the CLA is, how to sign it, and how the approval process works, step by step.</description><pubDate>Fri, 01 Jul 2022 00:00:00 GMT</pubDate></item><item><title>How OpenCV-Python Bindings Work</title><link>https://hakancelik.dev/en/python-baglayici-temelleri</link><guid isPermaLink="true">https://hakancelik.dev/en/python-baglayici-temelleri</guid><description>Learn how OpenCV-Python bindings are generated from C++ headers. We cover CV_EXPORTS_W, CV_WRAP, and other macros, plus the gen2.py generator and hdr_parser.py header parser scripts.</description><pubDate>Thu, 23 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Install OpenCV-Python in Windows</title><link>https://hakancelik.dev/en/windows-kurulum</link><guid isPermaLink="true">https://hakancelik.dev/en/windows-kurulum</guid><description>Learn to setup OpenCV-Python in Windows. Covers quick installation from prebuilt binaries and building from source using CMake and Visual Studio.</description><pubDate>Wed, 22 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Pagination in Django</title><link>https://hakancelik.dev/en/djangoda-sayfalama-pagination</link><guid isPermaLink="true">https://hakancelik.dev/en/djangoda-sayfalama-pagination</guid><description>The need for pagination arose from the sheer volume of data. If all data were displayed on a single page, the page would load slowly, users would have to wait a long time, the server would be overloaded, and the design would look poor.</description><pubDate>Tue, 21 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Install OpenCV-Python in Fedora</title><link>https://hakancelik.dev/en/fedora-kurulum</link><guid isPermaLink="true">https://hakancelik.dev/en/fedora-kurulum</guid><description>Learn to setup OpenCV-Python in Fedora using pre-built binaries or building from source. Includes CMake configuration, GCC setup, optional dependencies like TBB and Eigen.</description><pubDate>Tue, 21 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Install OpenCV-Python in Ubuntu</title><link>https://hakancelik.dev/en/ubuntu-kurulum</link><guid isPermaLink="true">https://hakancelik.dev/en/ubuntu-kurulum</guid><description>Learn to setup OpenCV-Python in Ubuntu using two methods: installing from pre-built binaries or compiling from source. Step-by-step guide tested on Ubuntu 16.04 and 18.04.</description><pubDate>Mon, 20 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Install OpenCV for Python with pip</title><link>https://hakancelik.dev/en/pip-kurulum</link><guid isPermaLink="true">https://hakancelik.dev/en/pip-kurulum</guid><description>The recommended way for most users to get OpenCV in Python: install from PyPI with pip. Covers virtual environments, platform notes, PyPI package variants, and common troubleshooting.</description><pubDate>Sun, 19 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Face Detection using Haar Cascades</title><link>https://hakancelik.dev/en/yuz-tespiti</link><guid isPermaLink="true">https://hakancelik.dev/en/yuz-tespiti</guid><description>Learn to use Haar Cascade classifiers in OpenCV for face and eye detection. This tutorial covers the theory behind Haar features, integral images, AdaBoost, and cascade classifiers.</description><pubDate>Sat, 18 Jun 2022 00:00:00 GMT</pubDate></item><item><title>High Dynamic Range (HDR) Imaging</title><link>https://hakancelik.dev/en/yuksek-dinamik-aralik</link><guid isPermaLink="true">https://hakancelik.dev/en/yuksek-dinamik-aralik</guid><description>Learn how to generate and display HDR images from an exposure sequence in OpenCV. We cover Debevec, Robertson, and Mertens exposure fusion algorithms with camera response function estimation.</description><pubDate>Fri, 17 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Image Inpainting</title><link>https://hakancelik.dev/en/resim-tamir</link><guid isPermaLink="true">https://hakancelik.dev/en/resim-tamir</guid><description>Learn how to remove small noises, strokes, and damage from old photographs using OpenCV&apos;s cv.inpaint(). We cover the Telea and Navier-Stokes inpainting algorithms.</description><pubDate>Thu, 16 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Image Denoising</title><link>https://hakancelik.dev/en/goruntu-gurultu-giderme</link><guid isPermaLink="true">https://hakancelik.dev/en/goruntu-gurultu-giderme</guid><description>Learn about Non-local Means Denoising algorithm to remove noise from images using OpenCV. We cover cv.fastNlMeansDenoising(), cv.fastNlMeansDenoisingColored(), and multi-frame denoising.</description><pubDate>Wed, 15 Jun 2022 00:00:00 GMT</pubDate></item><item><title>K-Means Clustering in OpenCV</title><link>https://hakancelik.dev/en/kmeans-opencv</link><guid isPermaLink="true">https://hakancelik.dev/en/kmeans-opencv</guid><description>Learn to use cv.kmeans() function in OpenCV for data clustering. We cover single feature, multi-feature data and color quantization of images using K-Means.</description><pubDate>Tue, 14 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Understanding K-Means Clustering</title><link>https://hakancelik.dev/en/kmeans-anlama</link><guid isPermaLink="true">https://hakancelik.dev/en/kmeans-anlama</guid><description>Learn the concepts of K-Means Clustering algorithm. We go through the step-by-step algorithm using a T-shirt size problem to explain how iterative centroid updates work.</description><pubDate>Mon, 13 Jun 2022 00:00:00 GMT</pubDate></item><item><title>OCR of Hand-written Data using SVM</title><link>https://hakancelik.dev/en/svm-opencv</link><guid isPermaLink="true">https://hakancelik.dev/en/svm-opencv</guid><description>Learn to use SVM with HOG (Histogram of Oriented Gradients) features for OCR of handwritten digits. This approach achieves ~94% accuracy, better than kNN with raw pixels.</description><pubDate>Sun, 12 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Understanding SVM</title><link>https://hakancelik.dev/en/svm-anlama</link><guid isPermaLink="true">https://hakancelik.dev/en/svm-anlama</guid><description>Learn an intuitive understanding of Support Vector Machines (SVM). We cover decision boundaries, support vectors, margin maximization, and kernel trick for non-linearly separable data.</description><pubDate>Sat, 11 Jun 2022 00:00:00 GMT</pubDate></item><item><title>OCR of Hand-written Data using kNN</title><link>https://hakancelik.dev/en/knn-opencv</link><guid isPermaLink="true">https://hakancelik.dev/en/knn-opencv</guid><description>Learn to build a basic OCR application using kNN knowledge. We use OpenCV&apos;s digits.png dataset to recognize handwritten digits achieving ~91% accuracy.</description><pubDate>Fri, 10 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Understanding k-Nearest Neighbour</title><link>https://hakancelik.dev/en/knn-anlamak</link><guid isPermaLink="true">https://hakancelik.dev/en/knn-anlamak</guid><description>Learn the concepts of the k-Nearest Neighbour (kNN) algorithm. We cover classification, feature space, weighted kNN, and implement a simple example with OpenCV.</description><pubDate>Thu, 09 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Depth Map from Stereo Images</title><link>https://hakancelik.dev/en/stereo-derinlik-haritasi</link><guid isPermaLink="true">https://hakancelik.dev/en/stereo-derinlik-haritasi</guid><description>Learn to create a depth map from stereo images. We cover cv.StereoBM.create() for disparity map computation and the parameters for tuning the results.</description><pubDate>Wed, 08 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Preventing and Controlling Clickjacking in Django - XFrameOptionsMiddleware</title><link>https://hakancelik.dev/en/djangoda-clickjack-tuzagnn-engeli-ve-kontrolu-xframeoptionsmiddleware</link><guid isPermaLink="true">https://hakancelik.dev/en/djangoda-clickjack-tuzagnn-engeli-ve-kontrolu-xframeoptionsmiddleware</guid><description>If you need more information about what clickjacking is, how to protect against it, and what precautions to take, you can check out my list titled clickjacking.</description><pubDate>Tue, 07 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Epipolar Geometry</title><link>https://hakancelik.dev/en/epipolar-geometri</link><guid isPermaLink="true">https://hakancelik.dev/en/epipolar-geometri</guid><description>Learn the basics of multiview geometry. We cover epipole, epipolar lines, epipolar constraint, Fundamental Matrix and Essential Matrix, with OpenCV code to find and draw epilines.</description><pubDate>Tue, 07 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Pose Estimation</title><link>https://hakancelik.dev/en/poz-tahmini</link><guid isPermaLink="true">https://hakancelik.dev/en/poz-tahmini</guid><description>Learn to exploit the calib3d module to create 3D effects in images. We cover cv.solvePnP() and cv.projectPoints() to draw 3D coordinate axes and a cube on a chessboard.</description><pubDate>Mon, 06 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Camera Calibration</title><link>https://hakancelik.dev/en/kamera-kalibrasyonu</link><guid isPermaLink="true">https://hakancelik.dev/en/kamera-kalibrasyonu</guid><description>Learn about types of distortion caused by cameras and how to find intrinsic/extrinsic properties. We cover cv.calibrateCamera() and cv.undistort() using a chessboard pattern.</description><pubDate>Sun, 05 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Background Subtraction</title><link>https://hakancelik.dev/en/arka-plan-cikarma</link><guid isPermaLink="true">https://hakancelik.dev/en/arka-plan-cikarma</guid><description>Learn background subtraction techniques to detect moving objects in video streams. We cover cv.createBackgroundSubtractorMOG2() and KNN-based background subtraction.</description><pubDate>Sat, 04 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Optical Flow</title><link>https://hakancelik.dev/en/optik-akis</link><guid isPermaLink="true">https://hakancelik.dev/en/optik-akis</guid><description>Learn optical flow using Lucas-Kanade and Farneback methods. We cover cv.calcOpticalFlowPyrLK() for sparse and cv.calcOpticalFlowFarneback() for dense optical flow.</description><pubDate>Fri, 03 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Meanshift and Camshift</title><link>https://hakancelik.dev/en/meanshift-camshift</link><guid isPermaLink="true">https://hakancelik.dev/en/meanshift-camshift</guid><description>Learn to use Meanshift and Camshift algorithms for object tracking in video. We cover cv.meanShift() and cv.CamShift() for histogram-based object tracking.</description><pubDate>Thu, 02 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Feature Matching + Homography to find Objects</title><link>https://hakancelik.dev/en/ozellik-eslestirme-homografi</link><guid isPermaLink="true">https://hakancelik.dev/en/ozellik-eslestirme-homografi</guid><description>Learn to combine feature matching and findHomography from the calib3d module to find known objects in complex images. We cover RANSAC-based robust perspective transform estimation.</description><pubDate>Wed, 01 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Feature Matching</title><link>https://hakancelik.dev/en/ozellik-eslestirme</link><guid isPermaLink="true">https://hakancelik.dev/en/ozellik-eslestirme</guid><description>Learn how to match features in one image with others. We cover Brute-Force matcher and FLANN Matcher with ORB and SIFT descriptors in OpenCV.</description><pubDate>Tue, 31 May 2022 00:00:00 GMT</pubDate></item><item><title>ORB (Oriented FAST and Rotated BRIEF)</title><link>https://hakancelik.dev/en/orb-algoritmasi</link><guid isPermaLink="true">https://hakancelik.dev/en/orb-algoritmasi</guid><description>Learn about ORB, a free alternative to SIFT or SURF. We cover cv.ORB_create() for keypoint detection and descriptor computation using FAST + rBRIEF combination.</description><pubDate>Mon, 30 May 2022 00:00:00 GMT</pubDate></item><item><title>What is a Clickjacking Attack?</title><link>https://hakancelik.dev/en/clickjack-tuzagsaldrs-nedir</link><guid isPermaLink="true">https://hakancelik.dev/en/clickjack-tuzagsaldrs-nedir</guid><description>This type of attack occurs when a malicious site tricks a user into clicking on a hidden element of another site that has been loaded into a hidden frame or iframe.</description><pubDate>Sun, 29 May 2022 00:00:00 GMT</pubDate></item><item><title>BRIEF (Binary Robust Independent Elementary Features)</title><link>https://hakancelik.dev/en/brief-tanimlayici</link><guid isPermaLink="true">https://hakancelik.dev/en/brief-tanimlayici</guid><description>Learn the basics of BRIEF algorithm, a fast binary descriptor that uses only 32 bytes compared to SIFT&apos;s 128 dimensions, enabling high-speed matching with Hamming distance.</description><pubDate>Sun, 29 May 2022 00:00:00 GMT</pubDate></item><item><title>FAST Algorithm for Corner Detection</title><link>https://hakancelik.dev/en/fast-kose-tespiti</link><guid isPermaLink="true">https://hakancelik.dev/en/fast-kose-tespiti</guid><description>Learn about FAST (Features from Accelerated Segment Test) algorithm designed for real-time applications. We cover cv.FastFeatureDetector_create() with and without non-maximal suppression.</description><pubDate>Sat, 28 May 2022 00:00:00 GMT</pubDate></item><item><title>Introduction to SURF (Speeded-Up Robust Features)</title><link>https://hakancelik.dev/en/surf-giris</link><guid isPermaLink="true">https://hakancelik.dev/en/surf-giris</guid><description>Learn the basics of SURF algorithm, a speeded-up version of SIFT that uses box filters and integral images to achieve 3x speedup while maintaining comparable performance.</description><pubDate>Fri, 27 May 2022 00:00:00 GMT</pubDate></item><item><title>Introduction to SIFT (Scale-Invariant Feature Transform)</title><link>https://hakancelik.dev/en/sift-giris</link><guid isPermaLink="true">https://hakancelik.dev/en/sift-giris</guid><description>Learn about the concepts of SIFT algorithm. We cover scale-space extrema detection, keypoint localization, orientation assignment, and finding SIFT keypoints with OpenCV.</description><pubDate>Thu, 26 May 2022 00:00:00 GMT</pubDate></item><item><title>Shi-Tomasi Corner Detector &amp; Good Features to Track</title><link>https://hakancelik.dev/en/shi-tomasi-kose-tespiti</link><guid isPermaLink="true">https://hakancelik.dev/en/shi-tomasi-kose-tespiti</guid><description>Learn about Shi-Tomasi Corner Detector, an improvement over Harris. We cover cv.goodFeaturesToTrack() to find the N strongest corners in an image.</description><pubDate>Wed, 25 May 2022 00:00:00 GMT</pubDate></item><item><title>How to Create Django Signals</title><link>https://hakancelik.dev/en/django-sinyalleri-nasl-olusturulur-django-signals</link><guid isPermaLink="true">https://hakancelik.dev/en/django-sinyalleri-nasl-olusturulur-django-signals</guid><description>Signals let you intercept an action performed on a model or on requests (request, response) and react accordingly. For example, if you have a user model and want something to happen in your own model whenever a new user registers, you can do that using signals.</description><pubDate>Tue, 24 May 2022 00:00:00 GMT</pubDate></item><item><title>Harris Corner Detection</title><link>https://hakancelik.dev/en/harris-kose-tespiti</link><guid isPermaLink="true">https://hakancelik.dev/en/harris-kose-tespiti</guid><description>Learn about Harris Corner Detection concepts and implementation. We cover cv.cornerHarris() and cv.cornerSubPix() for sub-pixel accuracy corner detection.</description><pubDate>Tue, 24 May 2022 00:00:00 GMT</pubDate></item><item><title>Understanding Features</title><link>https://hakancelik.dev/en/ozellikleri-anlamak</link><guid isPermaLink="true">https://hakancelik.dev/en/ozellikleri-anlamak</guid><description>Learn what image features are, why they are important, and why corners are good features. Covers the basics of feature detection and description.</description><pubDate>Mon, 23 May 2022 00:00:00 GMT</pubDate></item><item><title>Image Segmentation with Watershed Algorithm</title><link>https://hakancelik.dev/en/watershed</link><guid isPermaLink="true">https://hakancelik.dev/en/watershed</guid><description>Learn to use marker-based image segmentation using watershed algorithm. We cover cv.watershed() with distance transform to segment touching objects.</description><pubDate>Sun, 22 May 2022 00:00:00 GMT</pubDate></item><item><title>Interactive Foreground Extraction using GrabCut Algorithm</title><link>https://hakancelik.dev/en/grabcut</link><guid isPermaLink="true">https://hakancelik.dev/en/grabcut</guid><description>Learn to use GrabCut algorithm to extract foreground in images. We cover cv2.grabCut() with both rectangle and mask initialization modes.</description><pubDate>Sat, 21 May 2022 00:00:00 GMT</pubDate></item><item><title>Contours Hierarchy</title><link>https://hakancelik.dev/en/kontur-hiyerarsisi</link><guid isPermaLink="true">https://hakancelik.dev/en/kontur-hiyerarsisi</guid><description>Learn about the hierarchy of contours, i.e. the parent-child relationship in Contours. We cover RETR_LIST, RETR_EXTERNAL, RETR_CCOMP and RETR_TREE flags with examples.</description><pubDate>Fri, 20 May 2022 00:00:00 GMT</pubDate></item><item><title>Contours: More Functions</title><link>https://hakancelik.dev/en/konturlerle-daha-fazla-islev</link><guid isPermaLink="true">https://hakancelik.dev/en/konturlerle-daha-fazla-islev</guid><description>Learn about convexity defects, finding shortest distance from a point to a polygon, and matching different shapes. We cover cv2.convexityDefects(), cv2.pointPolygonTest() and cv2.matchShapes().</description><pubDate>Thu, 19 May 2022 00:00:00 GMT</pubDate></item><item><title>Contour Properties</title><link>https://hakancelik.dev/en/kontur-nitelikleri</link><guid isPermaLink="true">https://hakancelik.dev/en/kontur-nitelikleri</guid><description>Learn to extract frequently used properties of objects like Solidity, Equivalent Diameter, Mask image, Mean Intensity. Also covers extreme points, aspect ratio, and more.</description><pubDate>Wed, 18 May 2022 00:00:00 GMT</pubDate></item><item><title>Contour Features</title><link>https://hakancelik.dev/en/kontur-ozellikleri</link><guid isPermaLink="true">https://hakancelik.dev/en/kontur-ozellikleri</guid><description>Learn to find different features of contours like area, perimeter, centroid, bounding box. We cover cv2.moments(), cv2.contourArea(), cv2.minAreaRect() and many more functions.</description><pubDate>Tue, 17 May 2022 00:00:00 GMT</pubDate></item><item><title>Histograms - Histogram Backprojection</title><link>https://hakancelik.dev/en/histogram-geri-projeksiyonu</link><guid isPermaLink="true">https://hakancelik.dev/en/histogram-geri-projeksiyonu</guid><description>Learn about histogram backprojection for image segmentation and object finding. We cover cv2.calcBackProject() with both NumPy and OpenCV implementations.</description><pubDate>Mon, 16 May 2022 00:00:00 GMT</pubDate></item><item><title>Blocking a Clickjacking Attack</title><link>https://hakancelik.dev/en/clickjack-tuzagnn-engellenmesi</link><guid isPermaLink="true">https://hakancelik.dev/en/clickjack-tuzagnn-engellenmesi</guid><description>To configure Apache to send the X-Frame-Options header to all pages, add the following to your site&apos;s configuration:</description><pubDate>Sun, 15 May 2022 00:00:00 GMT</pubDate></item><item><title>Histograms - 2D Histograms</title><link>https://hakancelik.dev/en/2b-histogramlar</link><guid isPermaLink="true">https://hakancelik.dev/en/2b-histogramlar</guid><description>Learn to find and plot 2D histograms. We will use Hue and Saturation values for color histograms with cv2.calcHist() and np.histogram2d().</description><pubDate>Sun, 15 May 2022 00:00:00 GMT</pubDate></item><item><title>Histograms - Histogram Equalization</title><link>https://hakancelik.dev/en/histogram-esitleme</link><guid isPermaLink="true">https://hakancelik.dev/en/histogram-esitleme</guid><description>Learn the concepts of histogram equalization and use it to improve the contrast of images. We cover cv2.equalizeHist() and CLAHE.</description><pubDate>Sat, 14 May 2022 00:00:00 GMT</pubDate></item><item><title>Fourier Transform</title><link>https://hakancelik.dev/en/fourier-donusumu</link><guid isPermaLink="true">https://hakancelik.dev/en/fourier-donusumu</guid><description>Learn to find the Fourier Transform of images using OpenCV and NumPy. We will see cv2.dft(), cv2.idft() and frequency domain applications.</description><pubDate>Fri, 13 May 2022 00:00:00 GMT</pubDate></item><item><title>Hough Circle Transform</title><link>https://hakancelik.dev/en/hough-daire-donusumu</link><guid isPermaLink="true">https://hakancelik.dev/en/hough-daire-donusumu</guid><description>Learn to use Hough Transform to find circles in an image. We will see cv2.HoughCircles() function with practical examples.</description><pubDate>Thu, 12 May 2022 00:00:00 GMT</pubDate></item><item><title>Hough Line Transform</title><link>https://hakancelik.dev/en/hough-dogru-donusumu</link><guid isPermaLink="true">https://hakancelik.dev/en/hough-dogru-donusumu</guid><description>Learn to detect lines in an image using Hough Transform. We will see cv2.HoughLines() and cv2.HoughLinesP() functions with examples.</description><pubDate>Wed, 11 May 2022 00:00:00 GMT</pubDate></item><item><title>Image Thresholding</title><link>https://hakancelik.dev/en/resim-esikleme</link><guid isPermaLink="true">https://hakancelik.dev/en/resim-esikleme</guid><description>In this article we will learn simple thresholding, adaptive thresholding, and Otsu&apos;s thresholding, and we will learn these functions: cv2.threshold, cv2.adaptiveThreshold</description><pubDate>Wed, 11 May 2022 00:00:00 GMT</pubDate></item><item><title>Using Multiple Databases in a Django Project</title><link>https://hakancelik.dev/en/django-projesinde-birden-fazla-veri-taban-kullanm</link><guid isPermaLink="true">https://hakancelik.dev/en/django-projesinde-birden-fazla-veri-taban-kullanm</guid><description>We&apos;ll learn how to use multiple databases with Django, how to create applications with Django, how to find the IP addresses of visitors, and how to use &apos;from django.db.models import F&apos;.</description><pubDate>Tue, 10 May 2022 00:00:00 GMT</pubDate></item><item><title>Template Matching</title><link>https://hakancelik.dev/en/sablon-eslestirme</link><guid isPermaLink="true">https://hakancelik.dev/en/sablon-eslestirme</guid><description>Template Matching is a method for searching and finding the location of a template image in a larger image. Learn cv2.matchTemplate() and cv2.minMaxLoc() with examples.</description><pubDate>Tue, 10 May 2022 00:00:00 GMT</pubDate></item><item><title>How to Prevent a Clickjacking Attack</title><link>https://hakancelik.dev/en/clickjack-tuzagn-engellemenin-yolu</link><guid isPermaLink="true">https://hakancelik.dev/en/clickjack-tuzagn-engellemenin-yolu</guid><description>While researching this vulnerability, I found that it can also be blocked with a few lines of JavaScript code — though that approach is not considered reliable.</description><pubDate>Sun, 01 May 2022 00:00:00 GMT</pubDate></item><item><title>Trackbar as a Color Palette</title><link>https://hakancelik.dev/en/renk-paleti-olarak-parca-cubugu-trackbar</link><guid isPermaLink="true">https://hakancelik.dev/en/renk-paleti-olarak-parca-cubugu-trackbar</guid><description>We will learn how to bind a Trackbar to OpenCV windows. We will learn these functions: cv2.getTrackbarPos(), cv2.createTrackbar(), etc.</description><pubDate>Wed, 27 Apr 2022 00:00:00 GMT</pubDate></item><item><title>What is Django</title><link>https://hakancelik.dev/en/django-nedir</link><guid isPermaLink="true">https://hakancelik.dev/en/django-nedir</guid><description>Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It&apos;s free and open source.</description><pubDate>Tue, 26 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Changing Color Spaces</title><link>https://hakancelik.dev/en/renk-alanlarn-degistirme</link><guid isPermaLink="true">https://hakancelik.dev/en/renk-alanlarn-degistirme</guid><description>In this article, we will learn how to convert images from one color space to another, such as BGR to Gray, BGR to HSV, etc. In addition, we will create an application that allows extracting a colored object in a video. We will learn these fun</description><pubDate>Wed, 13 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Creating a Sitemap with Django</title><link>https://hakancelik.dev/en/django-ile-site-haritas-olusturma</link><guid isPermaLink="true">https://hakancelik.dev/en/django-ile-site-haritas-olusturma</guid><description>A sitemap is an .xml file that allows search engine bots from engines like Google to crawl and index the content on your site faster and more efficiently. It is very important for SEO (search engine optimization) and is present on almost every site.</description><pubDate>Tue, 12 Apr 2022 00:00:00 GMT</pubDate></item><item><title>Performance Measurement and Improvement Techniques</title><link>https://hakancelik.dev/en/performans-olcum-ve-gelistirme-teknikleri</link><guid isPermaLink="true">https://hakancelik.dev/en/performans-olcum-ve-gelistirme-teknikleri</guid><description>Hello everyone, in this section we will try to learn how to make the work we do in OpenCV more performant, i.e., faster, etc. As you may already know, when coding with technologies like OpenCV</description><pubDate>Wed, 30 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Django Admin Actions</title><link>https://hakancelik.dev/en/django-admin-actions</link><guid isPermaLink="true">https://hakancelik.dev/en/django-admin-actions</guid><description>An admin action is simply the ability to apply a bulk operation to selected objects — such as deleting all selected users. The image below illustrates what we&apos;re talking about.</description><pubDate>Tue, 29 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Drawing Functions in OpenCV</title><link>https://hakancelik.dev/en/opencvde-cizim-fonksiyonlar</link><guid isPermaLink="true">https://hakancelik.dev/en/opencvde-cizim-fonksiyonlar</guid><description>We will learn how to draw different geometric shapes with OpenCV. We will learn these functions: cv2.line(), cv2.circle(), cv2.rectangle(), cv2.ellipse(), cv2.putText(), etc.</description><pubDate>Wed, 16 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Context Processor Functions and How to Write Them</title><link>https://hakancelik.dev/en/context-processors-fonksiyonlar-ve-kodlanmas</link><guid isPermaLink="true">https://hakancelik.dev/en/context-processors-fonksiyonlar-ve-kodlanmas</guid><description>context_processors is a list of callable Python paths used to populate the context when a template is rendered. These callables take the request object as an argument and return a dict of items to be merged into the context.</description><pubDate>Tue, 15 Mar 2022 00:00:00 GMT</pubDate></item><item><title>OpenCV Video Operations</title><link>https://hakancelik.dev/en/opencv-video-islemleri</link><guid isPermaLink="true">https://hakancelik.dev/en/opencv-video-islemleri</guid><description>We will learn how to read videos, how to open and save them. We will learn how to record video with the camera and run it in a window. We will learn these functions: cv2.VideoCapture(), cv2.VideoWriter()</description><pubDate>Wed, 02 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Using Multiple Databases</title><link>https://hakancelik.dev/en/birden-fazla-veri-taban-kullanm-multi-db</link><guid isPermaLink="true">https://hakancelik.dev/en/birden-fazla-veri-taban-kullanm-multi-db</guid><description>To use multiple databases, we first need to define them in the project&apos;s settings.py file. The example below shows a settings.py configuration for a PostgreSQL and a MySQL database — you can use multiple databases of different types.</description><pubDate>Tue, 01 Mar 2022 00:00:00 GMT</pubDate></item><item><title>OpenCV Image Operations</title><link>https://hakancelik.dev/en/opencv-resim-islemleri</link><guid isPermaLink="true">https://hakancelik.dev/en/opencv-resim-islemleri</guid><description>The cv2.imread() function is used to read an image file and takes two arguments.</description><pubDate>Wed, 16 Feb 2022 00:00:00 GMT</pubDate></item><item><title>What Is OpenCV And Installation</title><link>https://hakancelik.dev/en/opencv-nedir-ve-kurulumu</link><guid isPermaLink="true">https://hakancelik.dev/en/opencv-nedir-ve-kurulumu</guid><description>Hello, in this tutorial series, the aim is to explain everything step by step from the very beginning to the end, following the OpenCV documentation.</description><pubDate>Wed, 02 Feb 2022 00:00:00 GMT</pubDate></item><item><title>Morphological Transformations</title><link>https://hakancelik.dev/en/morfolojik-donusumler</link><guid isPermaLink="true">https://hakancelik.dev/en/morfolojik-donusumler</guid><description>We will learn different morphological operations like Erosion, Dilation, Opening, Closing. We will see different functions like: cv2.erode(), cv2.dilate(), cv2.morphologyEx()</description><pubDate>Wed, 19 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Contours</title><link>https://hakancelik.dev/en/konturler-contours</link><guid isPermaLink="true">https://hakancelik.dev/en/konturler-contours</guid><description>We will understand what contours are. We will learn to find and draw contours. We will learn these functions: cv2.findContours(), cv2.drawContours()</description><pubDate>Wed, 05 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Histograms</title><link>https://hakancelik.dev/en/histogramlar</link><guid isPermaLink="true">https://hakancelik.dev/en/histogramlar</guid><description>( Histograms 1: Find, Plot, Analyze ) ### Goals</description><pubDate>Wed, 22 Dec 2021 00:00:00 GMT</pubDate></item><item><title>Smoothing Images</title><link>https://hakancelik.dev/en/goruntuyu-yumusatma-smoothing-images</link><guid isPermaLink="true">https://hakancelik.dev/en/goruntuyu-yumusatma-smoothing-images</guid><description>Blurring images with various low-pass filters. Applying custom filters to images (2D convolution)</description><pubDate>Wed, 08 Dec 2021 00:00:00 GMT</pubDate></item><item><title>Geometric Transformations of Images</title><link>https://hakancelik.dev/en/goruntunun-geometrik-donusumleri</link><guid isPermaLink="true">https://hakancelik.dev/en/goruntunun-geometrik-donusumleri</guid><description>We will learn how to apply different geometric transformations to images such as translation, rotation and affine transformation. We will learn this function: cv2.getPerspectiveTransform</description><pubDate>Wed, 24 Nov 2021 00:00:00 GMT</pubDate></item><item><title>Basic Operations on Images</title><link>https://hakancelik.dev/en/goruntulerle-ilgili-temel-islemler</link><guid isPermaLink="true">https://hakancelik.dev/en/goruntulerle-ilgili-temel-islemler</guid><description>Accessing and modifying pixel values, Accessing image properties, Setting the Image Region (area) (ROI), Splitting and Merging Images</description><pubDate>Wed, 10 Nov 2021 00:00:00 GMT</pubDate></item><item><title>Types and Type Conversions</title><link>https://hakancelik.dev/en/tipler-ve-donusumleri-class-type</link><guid isPermaLink="true">https://hakancelik.dev/en/tipler-ve-donusumleri-class-type</guid><description>First let us recall which data types exist in Python, then learn how to convert between them using type conversion functions.</description><pubDate>Tue, 02 Nov 2021 00:00:00 GMT</pubDate></item><item><title>Arithmetic Operations on Images</title><link>https://hakancelik.dev/en/goruntulerde-aritmetik-islemler</link><guid isPermaLink="true">https://hakancelik.dev/en/goruntulerde-aritmetik-islemler</guid><description>We will learn several arithmetic operations on images, such as addition, subtraction, and bitwise operations. You will learn these functions: cv2.add(), cv2.addWeighted(), etc.</description><pubDate>Wed, 27 Oct 2021 00:00:00 GMT</pubDate></item><item><title>String Methods and Method Operations (Method, Method-Wrapper)</title><link>https://hakancelik.dev/en/str-nesnesinin-methodlar-ve-method-operasyonlar-method-method-wrapper</link><guid isPermaLink="true">https://hakancelik.dev/en/str-nesnesinin-methodlar-ve-method-operasyonlar-method-method-wrapper</guid><description>Method Operations = Method Wrapper. An in-depth look at str object methods and method-wrappers in Python.</description><pubDate>Tue, 19 Oct 2021 00:00:00 GMT</pubDate></item><item><title>Image Pyramids</title><link>https://hakancelik.dev/en/goruntu-piramitleri</link><guid isPermaLink="true">https://hakancelik.dev/en/goruntu-piramitleri</guid><description>We will learn about image pyramids. We will use image pyramids to create a new fruit, &apos;Orapple&apos;, and we will see these functions: cv2.pyrUp(), cv2.pyrDown()</description><pubDate>Wed, 13 Oct 2021 00:00:00 GMT</pubDate></item><item><title>Error Handling in Python</title><link>https://hakancelik.dev/en/pythonda-hata-yonetimi</link><guid isPermaLink="true">https://hakancelik.dev/en/pythonda-hata-yonetimi</guid><description>In the topics covered so far we never talked about errors, how to catch them, or how to continue execution based on the error encountered. This is an important topic and you will learn it here.</description><pubDate>Tue, 05 Oct 2021 00:00:00 GMT</pubDate></item><item><title>Image Gradients</title><link>https://hakancelik.dev/en/goruntu-gecisleri</link><guid isPermaLink="true">https://hakancelik.dev/en/goruntu-gecisleri</guid><description>Image gradients and edge finding with these functions: cv2.Sobel(), cv2.Scharr(), cv2.Laplacian(), etc.</description><pubDate>Wed, 29 Sep 2021 00:00:00 GMT</pubDate></item><item><title>Loops in Python</title><link>https://hakancelik.dev/en/pythonda-donguler</link><guid isPermaLink="true">https://hakancelik.dev/en/pythonda-donguler</guid><description>The while loop is a loop that runs based on a condition. Just like if, elif, or else, the only thing a while loop cares about is whether the given condition is true. If it is, the loop keeps running; if not, it stops.</description><pubDate>Tue, 21 Sep 2021 00:00:00 GMT</pubDate></item><item><title>Canny Edge Detection</title><link>https://hakancelik.dev/en/canny-kenar-alglama</link><guid isPermaLink="true">https://hakancelik.dev/en/canny-kenar-alglama</guid><description>The concept of Canny edge detection. OpenCV function for this operation: cv2.Canny()</description><pubDate>Wed, 15 Sep 2021 00:00:00 GMT</pubDate></item><item><title>Python Installation</title><link>https://hakancelik.dev/en/pythona-giris-anaconda-atom-ve-pip-kurulumu</link><guid isPermaLink="true">https://hakancelik.dev/en/pythona-giris-anaconda-atom-ve-pip-kurulumu</guid><description>You don&apos;t need to perform the installation at the very end right now.</description><pubDate>Tue, 07 Sep 2021 00:00:00 GMT</pubDate></item><item><title>Mouse as a Paint Brush</title><link>https://hakancelik.dev/en/boya-frcas-olarak-fare</link><guid isPermaLink="true">https://hakancelik.dev/en/boya-frcas-olarak-fare</guid><description>We will learn how to handle mouse events in OpenCV. We will learn this function: cv2.setMouseCallback()</description><pubDate>Wed, 01 Sep 2021 00:00:00 GMT</pubDate></item><item><title>What Is Python?</title><link>https://hakancelik.dev/en/python-nedir</link><guid isPermaLink="true">https://hakancelik.dev/en/python-nedir</guid><description>Python is a general-purpose programming language that prioritises readability, and with its extensive standard library it is a preferred choice for both beginners and experienced developers alike.</description><pubDate>Tue, 24 Aug 2021 00:00:00 GMT</pubDate></item><item><title>Libraries, Modules, and Packages</title><link>https://hakancelik.dev/en/kutuphane-modul-ve-paketler</link><guid isPermaLink="true">https://hakancelik.dev/en/kutuphane-modul-ve-paketler</guid><description>pip is a package manager for Python.</description><pubDate>Tue, 10 Aug 2021 00:00:00 GMT</pubDate></item><item><title>insertAdjacentHTML</title><link>https://hakancelik.dev/en/insertadjacenthtml</link><guid isPermaLink="true">https://hakancelik.dev/en/insertadjacenthtml</guid><description>The insertAdjacentHTML() method of the Element interface parses the specified text as HTML or XML and inserts the resulting nodes into the DOM tree at a specified position. It does not re-parse the elem</description><pubDate>Sun, 01 Aug 2021 00:00:00 GMT</pubDate></item><item><title>Operators and the print() Function</title><link>https://hakancelik.dev/en/islecler-ve-print-fonksiyonu</link><guid isPermaLink="true">https://hakancelik.dev/en/islecler-ve-print-fonksiyonu</guid><description>Operators (*, /, -, +, %) and the print() function (the function that lets us write to the screen).</description><pubDate>Tue, 27 Jul 2021 00:00:00 GMT</pubDate></item><item><title>Instagram Bot</title><link>https://hakancelik.dev/en/instagram-botu</link><guid isPermaLink="true">https://hakancelik.dev/en/instagram-botu</guid><description>We will reinforce the class structure by building an Instagram bot, learn the @staticmethod decorator, and build a neat bot using the requests library.</description><pubDate>Tue, 13 Jul 2021 00:00:00 GMT</pubDate></item><item><title>The input() Function — Features and In-Depth Exploration</title><link>https://hakancelik.dev/en/input-fonksiyonu-ozellikleri-ve-detayl-inceleme</link><guid isPermaLink="true">https://hakancelik.dev/en/input-fonksiyonu-ozellikleri-ve-detayl-inceleme</guid><description>In my previous content I introduced Python functions and covered useful ones like type() and print(). Now we will look at the input() function, which lets us receive data (input) from users.</description><pubDate>Tue, 29 Jun 2021 00:00:00 GMT</pubDate></item><item><title>If, Elif, and Else Conditional Statements</title><link>https://hakancelik.dev/en/if-elif-ve-else-kosul-durumlar</link><guid isPermaLink="true">https://hakancelik.dev/en/if-elif-ve-else-kosul-durumlar</guid><description>To understand this topic you need to know the Comparison Operators from the operators article I wrote. Feel free to review that article and then come back to this one.</description><pubDate>Tue, 15 Jun 2021 00:00:00 GMT</pubDate></item><item><title>Introduction to Functions, the type() Function, Variables and Their Types, Comments</title><link>https://hakancelik.dev/en/fonksiyonlara-giris-type-fonksiyonu-degiskenler-ve-turleri-yorum-satr</link><guid isPermaLink="true">https://hakancelik.dev/en/fonksiyonlara-giris-type-fonksiyonu-degiskenler-ve-turleri-yorum-satr</guid><description>Functions in programming languages are the same as the functions we know from mathematics. In fact, when you look at it broadly, mathematics and programming are essentially the same thing — a computer is itself a product of mathematics.</description><pubDate>Tue, 01 Jun 2021 00:00:00 GMT</pubDate></item><item><title>What Is Sass and Scss?</title><link>https://hakancelik.dev/en/sass-ve-scss-nedir-syntactically-awesome-stylesheets</link><guid isPermaLink="true">https://hakancelik.dev/en/sass-ve-scss-nedir-syntactically-awesome-stylesheets</guid><description>Syntactically awesome stylesheets</description><pubDate>Thu, 27 May 2021 00:00:00 GMT</pubDate></item><item><title>Sass Watch, Variables, Nesting, Import, Mixin, Include and Operators</title><link>https://hakancelik.dev/en/sass-scss-dersleri-sass-watch-degiskenler-nesting-import-mixin-include-ve-operatorler</link><guid isPermaLink="true">https://hakancelik.dev/en/sass-scss-dersleri-sass-watch-degiskenler-nesting-import-mixin-include-ve-operatorler</guid><description>Hello everyone. In my Sass series, I&apos;ll be continuing with the Scss structure instead of Sass, as I think it is more similar to CSS and easier to learn quickly.</description><pubDate>Thu, 13 May 2021 00:00:00 GMT</pubDate></item><item><title>Sass Installation?</title><link>https://hakancelik.dev/en/sass-kurulumu-linux-windows-ve-mac</link><guid isPermaLink="true">https://hakancelik.dev/en/sass-kurulumu-linux-windows-ve-mac</guid><description>For more detailed installation info: http://sass-lang.com/install</description><pubDate>Thu, 29 Apr 2021 00:00:00 GMT</pubDate></item><item><title>Conditionals and Loops: @if, @else if, @else, @for, @while, @each</title><link>https://hakancelik.dev/en/kosullu-durumlar-ve-donguler-if-else-if-else-for-while-each</link><guid isPermaLink="true">https://hakancelik.dev/en/kosullu-durumlar-ve-donguler-if-else-if-else-for-while-each</guid><description>Hello everyone. As you know, when I started the coogger project I also started a new CSS framework called coogger.css. While developing this framework, I use Sass, and over the past week I&apos;ve been trying to add new features and improve existing ones.</description><pubDate>Thu, 15 Apr 2021 00:00:00 GMT</pubDate></item><item><title>Some Sass Mixins I Use Frequently</title><link>https://hakancelik.dev/en/baz-sk-kullandgm-sassscss-mixinsleri</link><guid isPermaLink="true">https://hakancelik.dev/en/baz-sk-kullandgm-sassscss-mixinsleri</guid><description>First, I want to start with my favorite Sass mixin — it makes the Sass/CSS code I write compatible with all browsers and lets me follow the principle of write once, run in all browsers.</description><pubDate>Thu, 01 Apr 2021 00:00:00 GMT</pubDate></item><item><title>What Is Git, Installation and Free Software</title><link>https://hakancelik.dev/en/git-nedir-kurulumu-ve-ozgur-yazlm</link><guid isPermaLink="true">https://hakancelik.dev/en/git-nedir-kurulumu-ve-ozgur-yazlm</guid><description>Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.</description><pubDate>Sun, 15 Nov 2020 00:00:00 GMT</pubDate></item><item><title>Git Commands</title><link>https://hakancelik.dev/en/git-komutlar</link><guid isPermaLink="true">https://hakancelik.dev/en/git-komutlar</guid><description>We installed Git and configured our settings — now it&apos;s time to learn Git commands.</description><pubDate>Sun, 01 Nov 2020 00:00:00 GMT</pubDate></item></channel></rss>