How to do image processing using gstreamer like opencv? - python-3.x

I have one project in which I am doing some object detection using deep learning. I have tried to read video frames using OpenCV,but it was too slow. May be near to 1fps. I have switched on gstreamer but I do not know how I can read frame by frame a video file using it, after reading in that way i want to do object detection as well. How can I do that? any source code is appreciated. I am on windows 10 and Python 3.6 on Anaconda environment.

Related

Extract individual frames as a buffer from a video

I'm trying to process a video using tensorflow in node.js (i.e. on the server - I don't have a web page). I need to process each frame in the video individually. I see some people are using ffmpeg to generate individual image files from the video but that seems wasteful as it creates files on the filesystem. I would prefer to grab each frame as a base64 string in memory. I've got this working using OpenCV4Node but am wondering if there are any lighter weight solutions. Is anyone already doing this? Any help would be appreciated :-)

Webcam capture in Python 3.4 on Windows

I have seen different modules like OpenCV and Videocapture for taking fast shots from the computer webcam, but these are only for Python 2. I thought I would make one work with Pygame, but I got many errors. I found different pages including pygame's website that said it only works with Linux.
Are there any modules for Python 3.4 for Windows that can quickly take shots from the webcam?
OpenCV can apparently be installed on Windows with Python 3, according to this answer here.
After OpenCV, my 2nd recommendation is to use GStreamer, and this is apparently possible on your specific platform according to this answer.

Tag Video by Frame with GPS Info using GStreamer

I have been tasked to tag a video frame-by-frame with gps coordinates as it is recording.
The platform must be on Linux (Ubuntu to be specific).
Very new to programming with video sources..
Some questions :
Do video frames even have per-frame meta data?
Is GStreamer a good framework to use for my purposes? How should I get started?
Thanks.
Check GstMeta: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html
It allows you to attach arbitrary metadata to buffers, which then can be passed downstream with the buffers and passed through other elements if possible. Take a look at the code of existing GstMeta implementations in gst-plugins-base for examples: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/video/gstvideometa.h http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/video/gstvideometa.c
Your meta would probably work very similar to the region of interest meta (plain metadata)
To get started, read the documentation on http://gstreamer.freedesktop.org , especially start with the application writers manual. And take a look at existing GStreamer code to understand how everything works together.

python3 audio signal processing

A project I am working on for one of my classes is to build a simple GUI sound editor for kids using python3 (using python3 is a strict project requirement). I don't want this editor to be as complex as something like audacity but I would like to have some fun built in effects similar to the sound editor on the nintendo ds http://nintendo.wikia.com/wiki/Nintendo_DSi_Sound.
I have been researching modules that are compatible with python3 that will help with the audio signal processing since I am very inexperienced in this area but I am running into trouble finding something that will work with python3. I found this great list of music modules for python: http://wiki.python.org/moin/PythonInMusic but everything that seems to have the functionality I think I want such as pyo and snack, does not have python3 compatibility.
I think at this point my best option is to use NumPy and SciPy for the signal processing but I was wondering if anyone had any better suggestions or advice? Or is using NumPy and SciPy an ideal choice if I can become familiar with them?
NumPy/SciPy can process audio signals, but it doesn't feel "native" as you have to write lots of interface code to play the resulting data as sound or write the in some standard format (like .wav).
I'd suggest porting those modules ; it's often very easy and straightforward and a good Python exercis.

Grabbing Images from a Webcam to be used with OpenCV

This is a follow up to my previous question,
OpenCV PS 3 Eye
Can someone suggest a library that would allow me grab frames from camera without too much fuss (like video videoinput lib for windows) and pass them to opencv within my application?
I had a parallel problem using a completely different webcam: worked well in cheese/etc, v4l-info showed proper setup, but openCV would fail with:
HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Unable to stop the stream.: Bad file descriptor
After much flailing I found that at least one guy had similar problems with webcams in various applications.
In blind faith I promptly punched in export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so and «poof» it worked.
The openCV v4l2 interface is not as robust as the v4l implementation and the export is a quick workaround (openCV appears to revert to v4l).
With a quick browse of opencv/modules/highgui/src/cap_v4l.cpp it would appear as though openCV would like to use v4l2.
I'm running Ubuntu Lucid 2.6.32-28-generic x86_64, libv4l-0 v0.6.4-1ubuntu1 with openCV pulled from the HEAD of the repo a few days ago.
In the course of explaining this I've resolved my issue. It turns out that openCV forces the resolution on a v4l2 device to 640x480 by default - and my device had a max 320x240 resolution which caused the fault when testing for the format type in opencv::highgui::cap_v41::try_palette_v4l2. I changed DEFAULT_V4L_WIDTH and, DEFAULT_V4L_HEIGHT.

Resources