A simple iris recognition system using Python, OpenCV, Gabor filters, and cosine similarity. The system segments the iris from two uploaded eye images, normalizes them, extracts features using Gabor filters, and compares them.
- Eye image preprocessing
- Iris segmentation using Hough Circle Transform
- Iris normalization
- Feature extraction using Gabor filters
- Matching using cosine similarity
- Visualization of each processing step
Install required packages:
pip install opencv-python-headless scipy scikit-image scikit-learn matplotlibUpload two eye images.
Preprocess and segment the iris region.
Normalize the segmented iris.
Apply Gabor filter for feature extraction.
Compare features using cosine similarity.
Display similarity score and visual steps.
Similarity Score: 0.9123
Match Result: ✅ Match Found
Includes side-by-side visualizations:
Original Eye
Segmented Iris
Normalized Iris
Gabor-enhanced Iris
iris-recognition/
│
├── iris_match.py # Main script
├── iris_match.ipynb # (Optional) Jupyter Notebook version
├── README.md # Project description
└── requirements.txt # Package dependencies🖼️ Sample Visualization
Use clear, front-facing eye images. (For demo purposes i have added 2 examples of iris images. Both are NON-IDENTICAL images of iris, they are named as eye1 and eye2.)
If iris can't be detected, try higher quality or better-lit images.
Improve iris segmentation using Daugman’s integro-differential operator.
Add eye image dataset loader.
Deploy as a web app (e.g., with Streamlit).