All Projects → gabrielburnworth → Plant Detection

gabrielburnworth / Plant Detection

Detects and marks plants in a soil area image using Python OpenCV

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Plant Detection

Snapchat Filter
3 facial filters on a webcam feed using OpenCV & ML - face swap, glasses and moustache
Stars: ✭ 35 (-18.6%)
Mutual labels:  opencv
Facerecog
Face Recognition using Neural Networks implemented using Keras
Stars: ✭ 39 (-9.3%)
Mutual labels:  opencv
Hacking Scripts
Hacking Scripts contains amazing and awesome scripts written in Python, JavaScript, Java, Nodejs, and more. The main aim of the repository will be to provide utility scripts that might make everyday life easy.
Stars: ✭ 41 (-4.65%)
Mutual labels:  opencv
Mosaicer
OpenCV & Tensorflow
Stars: ✭ 36 (-16.28%)
Mutual labels:  opencv
Ipcamera Cpython Interface
兼容主流海康和雄迈IPC的适用于C++和python的帧数据获取接口
Stars: ✭ 38 (-11.63%)
Mutual labels:  opencv
Lambda Packs
Precompiled packages for AWS Lambda
Stars: ✭ 997 (+2218.6%)
Mutual labels:  opencv
Ng Open Cv
Angular 6+ & OpenCV.js integration service library
Stars: ✭ 36 (-16.28%)
Mutual labels:  opencv
Sikulix1
SikuliX version 2.0.0+ (2019+)
Stars: ✭ 1,007 (+2241.86%)
Mutual labels:  opencv
Computer Vision
Computer vision sabbatical study materials
Stars: ✭ 39 (-9.3%)
Mutual labels:  opencv
Convolutionalemotion
A deep convolutional neural network system for live emotion detection
Stars: ✭ 40 (-6.98%)
Mutual labels:  opencv
Face Mask Detection
Face masks are crucial in minimizing the propagation of Covid-19, and are highly recommended or even obligatory in many situations. In this project, we develop a pipeline to detect unmasked faces in images. This can, for example, be used to alert people that do not wear a mask when entering a building.
Stars: ✭ 37 (-13.95%)
Mutual labels:  opencv
Pyimagevideo
write animated GIF, multipage append TIFF, AVI OGV video in Python
Stars: ✭ 36 (-16.28%)
Mutual labels:  opencv
Yuvtomat
High-performance library for converting YUV_420_888 Android Camera images to OpenCV RGB Mats
Stars: ✭ 40 (-6.98%)
Mutual labels:  opencv
Opencv Tutorials
Tutorials for learning OpenCV in Python from Scratch
Stars: ✭ 36 (-16.28%)
Mutual labels:  opencv
Smart Surveillance System Using Raspberry Pi
This is my Third Year Project for face recognition using OpenCV
Stars: ✭ 41 (-4.65%)
Mutual labels:  opencv
Camera calibration api
A simple Python API for single camera calibration using opencv
Stars: ✭ 36 (-16.28%)
Mutual labels:  opencv
Hololensarucounity
Marker tracking on HoloLens built on Aruco, OpenCV and Unity
Stars: ✭ 39 (-9.3%)
Mutual labels:  opencv
Real Time Distance Measurement
Real-time Distance Measurement Using Single Image
Stars: ✭ 42 (-2.33%)
Mutual labels:  opencv
Predict Facial Attractiveness
Using OpenCV and Dlib to predict facial attractiveness.
Stars: ✭ 41 (-4.65%)
Mutual labels:  opencv
Grabcutweb
Full web grabcut example using opencvjs
Stars: ✭ 40 (-6.98%)
Mutual labels:  opencv

Plant Detection

Detects and marks green plants in a (not green) soil area image using Python OpenCV.

The goal is to mark unwanted volunteer plants for removal.

For an overview of the image processing performed, see the wiki.

Contents


Installation

pip install -r requirements.txt

see Contributing for more installation options

Basic Usage

Run the script:

Using the sample soil image, soil_image.jpg.

Run the script: python -m plant_detection.PlantDetection

View soil_image_marked.jpg

Alternatively, process images using a python command line:

from plant_detection.PlantDetection import PlantDetection
help(PlantDetection)
PD = PlantDetection(image='plant_detection/soil_image.jpg')
PD.detect_plants()
PD = PlantDetection(image='plant_detection/soil_image.jpg', morph=15, iterations=2, debug=True)
PD.detect_plants()

Or, run the GUI and move the sliders:

python -m plant_detection.PlantDetection --GUI

Default image to process is soil_image.jpg. To process other images, use:

python -m plant_detection.PlantDetection --GUI other_image_name.png

Image file processing suggested workflow

1. Save image to be processed

For example: test_image.jpg

2. Run the GUI and move the sliders:

python -m plant_detection.PlantDetection --GUI test_image.jpg

This will create a plant detection parameters input file from the slider values.

3. Run detection:

python -m plant_detection.PlantDetection test_image.jpg

Or, for more options, enter a python command line: python

from plant_detection.PlantDetection import PlantDetection
PD = PlantDetection(image='test_image.jpg', from_file=True)
PD.detect_plants()

(For examples of output for graphic-related keyword arguments, see the wiki)

4. View output

Annotated image: test_image_marked.png

Tips

View help

python -c 'from plant_detection.PlantDetection import PlantDetection; help(PlantDetection)'

Hue range aid

python -m plant_detection.PlantDetection --GUI plant_detection/p2c_test_color.jpg

Project Directory

plant-detection
├── plant_detection  - Plant Detection Package
│   ├── tests  - project test suite
│   ├── PlantDetection.py  - calibrate and detect plants
│   ├── Capture.py  - take photos with a camera
│   ├── Parameters.py  - handle input parameters
│   ├── Image.py  - image processing
│   ├── DB.py  - handle plant data
│   ├── P2C.py  - pixel to coordinate conversion
│   ├── PatternCalibration.py  - alternative calibration method
│   ├── CeleryPy.py  - convert plant data to CeleryScript
│   ├── Log.py - custom send_message wrapper
│   ├── ENV.py  - environment variable save and load operations
│   ├── GUI.py  - interactively change input parameters
│   ├── p2c_test_calibration.jpg  - coordinate conversion calibration test image
│   ├── p2c_test_objects.jpg  - coordinate conversion detection test image
│   ├── p2c_test_color.jpg  - color range test image
│   └── soil_image.jpg  - plant detection test image
├── quickscripts  - scripts to run specific tasks
└── README.md
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].