# knnkeys/opencv-kisitanima architecture

> Architecture diagram of the GitHub repository knnkeys/opencv-kisitanima, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/knnkeys/opencv-kisitanima
- Repository: https://github.com/knnkeys/opencv-kisitanima

## Overview

A small, two-file Python application for real-time face recognition. The user chooses recognition, enrollment, or deletion from a console menu: enrollment saves a camera frame as a named image, recognition loads saved images and matches camera frames, and deletion removes selected image files. The recognition helper implements image encoding and matching. Relationships shown are limited to calls and storage actions visible in the excerpts and README.

Main entry points: [`opencv-YüzTanima.py`](https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py) (Console menu), [`simple_facerec.py`](https://github.com/knnkeys/opencv-kisitanima/blob/main/simple_facerec.py) (SimpleFacerec)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Face recognition app"]
  node_menu["Console menu"]
  node_enrollment["Camera enrollment"]
  node_recognition_flow["Live recognition"]
  node_deletion["Person deletion"]
end

subgraph group_recognition["Recognition engine"]
  node_sfr["SimpleFacerec<br/>[simple_facerec.py]"]
  node_encoding["Image encoding<br/>[simple_facerec.py]"]
  node_matching["Face matching<br/>[simple_facerec.py]"]
end

subgraph group_storage["Face image storage"]
  node_images[("Named face images")]
  node_listing["Image listing"]
end

node_user(("User"))
node_camera["Camera"]
node_opencv["OpenCV"]
node_face_recognition["face_recognition"]

node_user -->|"selects mode"| node_menu
node_menu -->|"dispatches to"| node_enrollment
node_menu -->|"dispatches to"| node_recognition_flow
node_menu -->|"dispatches to"| node_deletion
node_enrollment -->|"reads frames"| node_camera
node_enrollment -->|"captures and saves"| node_opencv
node_enrollment -->|"writes named image"| node_images
node_recognition_flow -->|"loads and detects"| node_sfr
node_recognition_flow -->|"reads frames"| node_camera
node_recognition_flow -->|"draws and displays"| node_opencv
node_sfr -->|"delegates encoding"| node_encoding
node_sfr -->|"delegates matching"| node_matching
node_encoding -->|"reads image files"| node_images
node_encoding -->|"encodes faces"| node_face_recognition
node_matching -->|"locates and compares"| node_face_recognition
node_deletion -->|"lists people"| node_listing
node_listing -->|"reads filenames"| node_images
node_deletion -->|"removes selected files"| node_images

click node_menu "https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py"
click node_enrollment "https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py"
click node_recognition_flow "https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py"
click node_deletion "https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py"
click node_images "https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py"
click node_listing "https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py"
click node_sfr "https://github.com/knnkeys/opencv-kisitanima/blob/main/simple_facerec.py"
click node_encoding "https://github.com/knnkeys/opencv-kisitanima/blob/main/simple_facerec.py"
click node_matching "https://github.com/knnkeys/opencv-kisitanima/blob/main/simple_facerec.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_menu,node_enrollment,node_recognition_flow,node_deletion,node_user toneBlue
class node_sfr,node_encoding,node_matching toneAmber
class node_images,node_listing toneMint
class node_camera,node_opencv,node_face_recognition toneIndigo
```

## Components

### Face recognition app

- [Console menu](https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py): `opencv-YüzTanima.py`
- [Camera enrollment](https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py): `opencv-YüzTanima.py`
- [Live recognition](https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py): `opencv-YüzTanima.py`
- [Person deletion](https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py): `opencv-YüzTanima.py`

### Recognition engine

- [SimpleFacerec](https://github.com/knnkeys/opencv-kisitanima/blob/main/simple_facerec.py): `simple_facerec.py`
- [Image encoding](https://github.com/knnkeys/opencv-kisitanima/blob/main/simple_facerec.py): `simple_facerec.py`
- [Face matching](https://github.com/knnkeys/opencv-kisitanima/blob/main/simple_facerec.py): `simple_facerec.py`

### Face image storage

- [Named face images](https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py): `opencv-YüzTanima.py`
- [Image listing](https://github.com/knnkeys/opencv-kisitanima/blob/main/opencv-Y%C3%BCzTanima.py): `opencv-YüzTanima.py`

### Other components

- **User**
- **Camera**
- **OpenCV**
- **face_recognition**

## Connections

- User → Console menu: selects mode (evidence: `opencv-YüzTanima.py`)
- Console menu → Camera enrollment: dispatches to (evidence: `opencv-YüzTanima.py`)
- Console menu → Live recognition: dispatches to (evidence: `opencv-YüzTanima.py`)
- Console menu → Person deletion: dispatches to (evidence: `opencv-YüzTanima.py`)
- Camera enrollment → Camera: reads frames (evidence: `opencv-YüzTanima.py`)
- Camera enrollment → OpenCV: captures and saves (evidence: `opencv-YüzTanima.py`)
- Camera enrollment → Named face images: writes named image (evidence: `opencv-YüzTanima.py`)
- Live recognition → SimpleFacerec: loads and detects (evidence: `opencv-YüzTanima.py`)
- Live recognition → Camera: reads frames (evidence: `opencv-YüzTanima.py`)
- Live recognition → OpenCV: draws and displays (evidence: `opencv-YüzTanima.py`)
- SimpleFacerec → Image encoding: delegates encoding (evidence: `simple_facerec.py`)
- SimpleFacerec → Face matching: delegates matching (evidence: `simple_facerec.py`)
- Image encoding → Named face images: reads image files (evidence: `simple_facerec.py`)
- Image encoding → face_recognition: encodes faces (evidence: `simple_facerec.py`)
- Face matching → face_recognition: locates and compares (evidence: `simple_facerec.py`)
- Person deletion → Image listing: lists people (evidence: `opencv-YüzTanima.py`)
- Image listing → Named face images: reads filenames (evidence: `opencv-YüzTanima.py`)
- Person deletion → Named face images: removes selected files (evidence: `opencv-YüzTanima.py`)
