If the amount of motion you are waiting for is quite small, it might
be hard to look at the motion via frame difference on the whole frame
and compare to a threshold. If thats the case, I would suggest one of
two options:
- do a frame difference as mentioned, but instead of summing the total
difference in the whole frame and comparing to a threshold, divide the
screen into a grid, and sum the difference in each grid. If any grid
has more motion than a threshold, switch to that feed.
- similar to the above, (but more complex - but easier to do as one of
the samples has something very similar), do an optical flow motion
estimation on the feeds, then check to see if any velocity vector is
greater than a threshold.
Normally if developing from scratch the first option is much easier.
But there is already a QC optical flow implementation in the samples
(developer/examples/Quartz Composer/Plugins/Optical Flow). There you
will find 2 QTZ files, any one of those will do but the
OpticalFlow.qtz is probably easier to start with, you just need the
branch upto and including the CI Optical Flow. This core image kernel
takes two frames (current and prev) and outputs a new image containing
velocity vectors (R is horizontal speed, G is vertical speed).What you
want to do is loop through this image and check to see if any velocity
(i.e. any pixel) is greater than a threshold (you DONT want to average
all velocities and compare to a threshold because you will have the
same problem as the whole image frame differencing in that the subtle
movements will be absorbed by the noise).
P.S. in those optical flow QTZ samples, it will give an error about
missing plugin. The OpticalFlowDownloader QCPlugin is not that
important, all it does is take the RG vector field image, and convert
it into an array of numbers. If its easier you could just compile the
plugin and iterate through the array instead of the image... or better
still just modify the QCPlugin to do the looping (as it already does
do that) and just return the maximum velocity instead of (or as well
as) the array of numbers....
hope this helps,
Memo (Mehmet S. Akten)
www.memo.tv
[EMAIL PROTECTED]
On 7 Jul 2008, at 20:13, Jeffrey Weekley wrote:
Thanks to Chris W. for his reply using a QC Histogram approach, but
since neither screen capture nor speaker video source changes all
that much, we weren't able to generate a delta that was wide enough
to elicit a switch from one source to another.
I _know_ I saw such a composition at the WWCD last year ('07), but I
can't find that example online or in the developer directory with
XCode.
Does anyone have this, because I think it's just what we're looking
for.
In a nutshell, here's the problem again:
One Video Screen Capture + One Camera Video (plus audio). We want to
be able to post both videos to a directory, bring them into QC and
switch between the video sources, based on whether or not something
is happening on the screen capture. Most of the time, it's subtle,
like a mouse move. The audio from the camera plays through out. We
then want a Quicktime movie from the QC.
Any ideas?
Thanks in advance.
-Jeff W.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected]
)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/memo%40memo.tv
This email sent to [EMAIL PROTECTED]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com
This email sent to [EMAIL PROTECTED]