Giter Site home page Giter Site logo

birdcam's Introduction

BirdCam-2000

ALL BIRDS, ALL THE TIME

Like birds, but can't see any? Then BirdCam-2000 is the app for you. Plug in your USB camera and BirdCam-2000 will do the rest, if you're lucky.

Quick start guide

  1. To run BirdCam as a standalone app, download the executable (file ending in "exe") from the "Releases" page on the right and double-click when it's downloaded (easiest).
  2. To run BirdCam in Python directly, ensure you have Anaconda/Miniconda installed, then follow the commands below. First, either download this repository via the "Code" button to the top-right of the page, or clone it directly using Github or via the command line. Once cloned, create a suitable Python environment using the file provided, and activate it. Then, run BirdCam and enter a world of wonder.
git clone https://github.com/paddy-r/BirdCam
conda env create -n birdcam -f environment.yml
conda activate birdcam
python birdcam/BirdCam.py

Contact, contributing and reporting issues

  • If you find any bugs, please send me a message or submit an issue here
  • If you'd like to contribute to BirdCam, you can install it in development mode by navigating to the topmost directory, then:
pip install -v -e .

BirdCam is presented in honour of Christopher Gary Packham CBE

As Chris would say: "If it's not about birds, I'm not interested."

birdcam's People

Contributors

paddy-r avatar

Watchers

 avatar

birdcam's Issues

Image and video processing functionality

To create image processing utilities to do the following

  • Started basic functionality -> done in #17
  • Process images to detect dark bands, which are intermittent artifacts produced by the camera
  • Produce time-lapse video by searching through folders over a specified period

View multiple cameras simultaneously

Want to allow all available cameras to be shown. Rough list of jobs:

  • Find all available cameras and display as checkbox list to user; already partly done in CameraSelector and see issue related to that that needs to be fixed first (#23)
  • Create grid of camera viewers for all available cameras
  • Create feed via VideoCapture for each camera and cast to grid element
  • Select active camera by mouse position

Image and video file names not updating

Image and video file names are fixed, so current dates/times not being updated. Effect is that single video and image files being created in each session, then overwritten at each capture. To do:

  • Ensure new file name created every time
  • #14

Add to readme file

To include:

  • Downloading/cloning
  • Environment setup
  • How to run executable

Reduce executable size + Python 3.11

Currently 300MB+, should be much smaller. Try:

  • Create environment with conda, then install everything else with pip, where possible
  • Update to Python 3.11, test functionality
  • Create environment file and streamline
  • Exclude pyinstaller as module when creating executable

Create video from images

Want to create video from images.

  • Select folder of images -> done in #31
  • Order all images in folder by data, oldest first -> done in #31
  • Create video from series of images, say 2 seconds per image -> done in #31
  • Add fade between images
  • Add text to first few seconds, plus fade in/out

Add video creation dialogue to app

Embed image_utils.create_video functionality in app. Roughly:

  • Button in menu somewhere
  • Opens dialogue to find folder of images to compile into video
  • Allow selection of image types -> nah, can just add other formats to allowed types
  • Allow specification of frame rate -> allow to be set in settings as well?
  • Ask for save location
  • Create video filename based on timestamp of most recent image used (rather than by time video created, as in early version)

Have single video-record button

Currently two buttons for "start recording" and "stop recording". Only needs to be one. Rough jobs:

  • Change first button label and functionality upon pressing -> toggle between start and stop recording -> done in #25
  • Once functionality copied over to first button, remove second button -> done in #25
  • Buttons not aligned properly -> done in #26
  • Check all default video/image arguments defined and used as attributes in BirdCam object -> done in #26
  • Also limit recording time to (say) one minute -> done in #29

Bug in CameraSelector

Hangs when trying to run CameraSelector via Connect -> Find camera. Error ends with AttributeError: 'int' object has no attribute '_root'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.