GithubHelp home page GithubHelp 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

Add to readme file

To include:

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

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

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

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)

Bug in CameraSelector

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

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

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

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

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

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.