Re: Proposed Implementation for the Visual Magnifier Addition



Hi,

Sounds interesting!

You could also write all of your video transformation/filtering code as a GStreamer plugin so it can be reused in other GStreamer programs. You could then use Cheese's GTK+/GStreamer interfaces to control the plugin's properties.

Or, you could just whip up a simple standalone GTK+/GStreamer application in not very lines of code to create a GStreamer pipeline with your "magnifier" element in it.

I actually wrote a small program[1] for fun that serves a similar purpose after I saw this[2]. It's a standalone application rather than being integrated into/with Cheese/GStreamer (it uses OpenCV), but you might find some of the video-related code interesting anyway.

Cheers,
Matthew Brush - Random cheese-list lurker

[1] https://github.com/codebrainz/digimag
[2] http://petrahele.webnode.cz/news/assistive/


On 11/17/2011 02:55 PM, David Descoteaux wrote:
To all,

Greetings again from the Western New England University students. We
have reached a proposed implementation for the visual magnifier
functionality to Cheese based on the GNOME human interface guidelines
and our understandings of Cheese and GStreamer. Attached is the
completed Software Design Specification of our proposed implementation.

Our project's dokuwiki on the SoftHum website can be foundhere
<http://xcitegroup.org/softhum/doku.php?id=s:cheesemagnifier:project>.

To Summarize:
-We plan to add a new drop-down menu to the main window of Cheese
labeled "UAC" that will contain the visual magnifier filters and red
guideline switches.

-The filters themselves would be implemented as new CheeseEffects
(accessible only through the previously described menu if need be) that
would utilize GStreamer to modify the image stream from the webcamera to
the high-contrast foreground/background filters the customer requested.

-The horizontal red guideline, we are certain that we would implment as
a CheeseEffect as well. However, we aren't certain if priorities of
effects, or layers, could be implemented from either GStreamer's
documentation or Cheese's. As the line needs to remain above, or redrawn
on top of any other applied effect we plan to implement.

As far as we have been able to piece together from the documentation and
code of both packages, we have this as our basis of thought:
CheeseEffects utilize GStreamer pipeline filters and a few of the
plugins (In the case of the "Dice" Effect there is a "dicetv" plugin
under the gst-plugins-good package) to manipulate the incoming video
feed from a webcamera. However, tracing through Cheese's code hasn't
provided a source apart from an enumerated list of strings that mention
a few effects, so these are all best guesses about how the effects are
actually created and used.

The private API within Cheese has been a massive boon to the project
(Thanks, again Amigadave for telling us how to generate that), but we
would like some confirmation as to whether or not this is how things
actually work within the program.

The proposed implementation can be modified if the ideas are either
incorrect, or not in line with how the project is currently progressing.
Any form of input or criticism is appreciated.

Thanks in advance,
David "Biomech360"



_______________________________________________
cheese-list mailing list
cheese-list gnome org
http://mail.gnome.org/mailman/listinfo/cheese-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]