This is a high-speed python based skin detection system using OpenCV, it is done using adaptive thresholding, reference papers can be found below. It is designed for processing VGA sized images in real time for the [Gesture Control](https://github.com/WillBrennan/GestureControl) project.
This is a high-speed python based skin detection system using OpenCV, it is done using adaptive thresholding, reference
papers can be found below. It is designed for processing VGA sized images in real time for Gesture Control.
## Quick Start
## Quick Start
Getting the app to run is pretty easy. This script will not [install OpenCV](http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html). However to install the rest of the project dependencies and run the demo script use the following commands.
Getting the app to run is pretty easy. This script will not [install OpenCV](http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html).
However to install the rest of the project dependencies and run the demo script use the following commands;
```bash
```bash
# Clone the repo
# Clone the repo
...
@@ -11,20 +13,15 @@ git clone https://github.com/WillBrennan/SkinDetector && cd SkinDetector
...
@@ -11,20 +13,15 @@ git clone https://github.com/WillBrennan/SkinDetector && cd SkinDetector
# Install requirements
# Install requirements
python setup.py install
python setup.py install
# Run the bot
# Run the bot
python main.py <directory of images> --display
python FromFile.py <directory of images> --display
```
```
## Usage
## Usage
Usage of this as a submodule is simple, just clone into your projects directory (or preferably add as a git submodule), and your ready to go. Below
is an example code usage.
```python
```python
importos
importcv2
importcv2
importnumpy
importSkinDetector
importSkinDetector
img_path=raw_input("Please Enter Image Path")
img_path=raw_input("Please Enter Image Path")
assertos.path.exists(img_path),"img_path does not exsist"
image=cv2.imread(img_path)
image=cv2.imread(img_path)
mask=SkinDetector.process(image)
mask=SkinDetector.process(image)
cv2.imshow("input",image)
cv2.imshow("input",image)
...
@@ -32,10 +29,8 @@ cv2.imshow("mask", mask)
...
@@ -32,10 +29,8 @@ cv2.imshow("mask", mask)
cv2.waitKey(0)
cv2.waitKey(0)
```
```
## References
[Skin Segementation Using Multiple Thresholds](http://www.ivl.disco.unimib.it/papers2003/EI06-EI109%20Skin-paper.pdf)
## Demonstration
## Demonstration


## Based Upon
[Skin Segmentation Using Multiple Thresholds](http://www.ivl.disco.unimib.it/papers2003/EI06-EI109%20Skin-paper.pdf)