Release notes ============= Main branch ----------- - VideoFileStream and VideoFile attributes are more robust to missing stream information provided by ffprobe - Documentation improvements - Switched from develop / master branch system to main branch system with frequent PR merges - Fixes for a number of minor inconsistencies or other problems in code Version 0.6 ----------- Commits by Gabriel Beckers. - modernize package structure - depends on ffmpeg 8.0.1 - GitHub Action tests now use conda ffmpeg package - Dependencies updated to recent versions - simplified README - add overwrite parameters to many functions - ffmeg version is added to saved metadata movement detection - archived coordinates are extracted with 'data' filter (safer option since Python 3.12) - use 'copy' as default codec argument when extracting audio from video (doesn't change data) - improved audio codec handling when extracting audio (best muxer chosen automatically) - refactored ffmpeg module: a.o. better error handling - implemented a VideoFile class - improved stream awareness (files can have multiple video and audio streams) - started type hinting code - seriously extended documentation with Recipes (short howtos) - added vstack_frames function - improved banner docs and github - Frames.draw_rectangle points format now consistent with other methods and functions Version 0.5 ----------- Commits by Carien Mol and Gabriel Beckers. - depends on ffmpeg 4.2.2 - bug correction in notebook 5: fix copy and update of settings dictionary when looking at range of parameter values. - ``extract_audio`` has more argument options, such as specifying the codec and channel number that should be extracted. - new function ``extract_archivedcoordinatedata`` in ``coordinatearrays`` module. - new tutorial notebook 6_batchdetection: with examples of how to use the batch function for movement detect, how to archive coordinate data to save memory space, and how to extract archived coordinate data in a notebook. - added option in module parameterselection to inspect count statistics with different combinations of settings. Previously only mean statistics could be used. - prepare for future use of pandas stack - modernize install system (move to pyproject.toml) Version 0.4 ----------- Commits by Carien Mol and Gabriel Beckers. New submodule `parameterselection`, part of module `movementdetection`: - `ParameterSelection` class with the results as Pandas DataFrame, and methods to easily view and compare the results of various parameters. - `apply_all_parameters` and `load_parameterselection` function. - `parameterselection` notebook. Big change to `movementdetection` module: - There is now one high-level function `detect_movement`, in which the type of background subtraction algorithm that should be used can be added as optional parameter. - There is an easy-to-use default parameters setting for this function that takes care of many of the pre- and postprocessing steps. - There is also a optional `settings` parameters in which you can easily set various processing steps, as wel as the parameters values for the background subtraction algorithm, to be in full control of all settings. Tutorial with five notebooks: - The notebooks of previous versions are modified into a more cohesive tutorial. The first three notebooks demonstrate some basic functionalities of Birdwatcher. The fourth and fifth notebook are specifically designed to apply movement detection on the user's own videos. Other changes: - `product_dict` function in utils module. - some restrictions in what is imported automatically via the init file. - modified existing tests and added new tests. Some corrections: - switch frameheight/framewidth when calling framecolor or framegray. - also include first frame when calculating the mean frame in `calc_meanframe`. Version 0.3 ----------- Commits by Carien Mol and Gabriel Beckers. New methods: - `peek_frames` method for Frames for peeking the first frame - `show` method for Frames, VideoFileStream and CoordinateArrays - `save_nonzero` method for Frames to directly save nonzero pixel coordinates as CoordinateArrays - `get_coordmedian` method for CoordinateArrays - `edge_detection` method for Frames Other changes: - bug correction: switch frameheight/framewidth when initializing Frames object - `find_nonzero` methods now can work with color frames - `apply_backgroundsegmenter` method on Frames for background segmentation - improved logging of processing steps - many improvements docstrings and code consistency - added more tests