<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.staging.zoneminder.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeraldinesewell</id>
	<title>ZoneMinder Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.staging.zoneminder.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeraldinesewell"/>
	<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/Special:Contributions/Jeraldinesewell"/>
	<updated>2026-04-20T01:35:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Zone_Parameter_Explanations_version_1.21&amp;diff=4627</id>
		<title>Zone Parameter Explanations version 1.21</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Zone_Parameter_Explanations_version_1.21&amp;diff=4627"/>
		<updated>2011-08-17T11:44:13Z</updated>

		<summary type="html">&lt;p&gt;Jeraldinesewell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[General_Notes#Zone_Configurations_and_Fine_Tunings|Back]]&lt;br /&gt;
&lt;br /&gt;
===Zone Parameter Explanations===&lt;br /&gt;
*Note:  This area is complex and needs alot of work.  Please help in any way that you can!&lt;br /&gt;
&lt;br /&gt;
==Name==&lt;br /&gt;
Each Zone can be named for reference purposes.  Choose a name that helps you identify your zones.&lt;br /&gt;
&lt;br /&gt;
==Type==&lt;br /&gt;
*Active - &lt;br /&gt;
&lt;br /&gt;
*Inclusive - &lt;br /&gt;
&lt;br /&gt;
*Exclusive -&lt;br /&gt;
&lt;br /&gt;
*Preclusive - &lt;br /&gt;
&lt;br /&gt;
*Inactive -&lt;br /&gt;
&lt;br /&gt;
==Units==&lt;br /&gt;
&lt;br /&gt;
*Pixels - Selecting this option will allow many of the following values to be entered (or viewed) in units of pixels.&lt;br /&gt;
&lt;br /&gt;
*Percentage -  Selecting this option will allow may of the following values to be entered (orviewed) as a percentage.&lt;br /&gt;
&lt;br /&gt;
==Minimum X - Minimum Y - Maximum X - Maximum Y==&lt;br /&gt;
Use these parameters to define the X,Y coordinates of the corners of the zone that is to be defined.&lt;br /&gt;
&lt;br /&gt;
==Alarm Colour==&lt;br /&gt;
&lt;br /&gt;
These parameters can be used to indvidually colorize the zone overlay pattern.  By default, red is the active zone and green is the ??? zone.&lt;br /&gt;
&lt;br /&gt;
==Alarm Check Method==&lt;br /&gt;
*Alarmed Pixels -&lt;br /&gt;
&lt;br /&gt;
Choosing this Check Method will grey out many of the available parameters.  This can simplify the tuning process, and could possibly be a better starting point for learning to adjust the many advanced parameters that are enabled with the other options. &lt;br /&gt;
&lt;br /&gt;
*Filtered Pixels - &lt;br /&gt;
&lt;br /&gt;
Choosing this Check Method opens up the Filtered parameters for adjustment in addition to the Alarmed Pixels above.  This should give more accuracy, once you know how to adjust the various parameters and assist with eliminating false alarms and triggering on desired conditions.&lt;br /&gt;
&lt;br /&gt;
*Blob Pixels - &lt;br /&gt;
&lt;br /&gt;
Choosing this Check Methos opens up all of the available parameters.  Enabling Blobs provides one more analysis for determination of what is a valid alarm and what is not.&lt;br /&gt;
&lt;br /&gt;
==Minimum Pixel Threshold==&lt;br /&gt;
These setting are used to define limits for the difference in value between a pixel and its predecessor in the reference image.&lt;br /&gt;
&lt;br /&gt;
I believe that this value (and the Maximum value as well) defines the amount of change that a single pixel must undergo, from the prior image (the reference image) and the current image, in order for the pixel to have been considered to have changed.&lt;br /&gt;
&lt;br /&gt;
Small abberations in lighting or auto exposure camera adjustments may cause the explicit value of a pixel to vary by small amounts from image to image.  This parameter allows you to set the limits of what will be considered a &amp;quot;changed pixel&amp;quot;.  For example, if your camera points to a blank white wall, and you raise a black colored item into view, then the change in any one pixel will be great, indeed, extreme.  If however, you raise a white piece of paper, then the change that an individual pixes sees will be more subtle.  Setting this minimum value too high, may allow a white cat to walk undetected across the view of the white wall.&lt;br /&gt;
&lt;br /&gt;
The default value for this parameter is X%.  Generally, this value may range in the 5% to 15% range.&lt;br /&gt;
&lt;br /&gt;
==Maximum Pixel Threshold==&lt;br /&gt;
See the Minimum Pixel Threshold (above) for some explanation.&lt;br /&gt;
&lt;br /&gt;
The default value for this parameter is 0% or 0 (zero) pixels, which disables the check.  In other words, a pixel that changes from extreme white to extreme black will always be considered to be changed.  This value is probably best left at a value of 0 (zero).&lt;br /&gt;
&lt;br /&gt;
==Minimum Alarmed Area==&lt;br /&gt;
&lt;br /&gt;
==Maximum Alarmed Area==&lt;br /&gt;
&lt;br /&gt;
==Filter Width and Filter Height (pixels)==&lt;br /&gt;
This parameter is always specified in Pixels, even when Percentages are the selected units.&lt;br /&gt;
&lt;br /&gt;
This parameter defines a group of pixels and should always be an odd number.  &lt;br /&gt;
&lt;br /&gt;
3 x 3 is the default value, and 5 x 5 is also suggested as another valid option.  It is suggested that these numbers be small in number.  &lt;br /&gt;
&lt;br /&gt;
==Minimum Filtered Area==&lt;br /&gt;
&lt;br /&gt;
* This value should always be equal to or less than the Minimum Alarmed Area&lt;br /&gt;
&lt;br /&gt;
==Maximum Filtered Area==&lt;br /&gt;
&lt;br /&gt;
* This value should always be equal to or less than the Maximum Alarmed Area&lt;br /&gt;
&lt;br /&gt;
==Minimum Blob Area==&lt;br /&gt;
* The following Blob parameters are only available if you have selected &amp;quot;Blobs&amp;quot; as the &amp;quot;Alarm Check Method&amp;quot; above.&lt;br /&gt;
&lt;br /&gt;
When two or more Filtered areas touch or share a boundary, they probably should be evaluated as one contiguous area and not as separate entities.  A Blob is the coalesced or consolodated area of multiple filtered areas.&lt;br /&gt;
&lt;br /&gt;
The Minimum blob area the smallest area that would be considered to be a blob.&lt;br /&gt;
&lt;br /&gt;
==Maximum Blob Area==&lt;br /&gt;
This parameter is probably best left at the default value of 0 (zero) or disabled.&lt;br /&gt;
&lt;br /&gt;
==Minimum Blobs==&lt;br /&gt;
Normally, you would want any single blob to trigger an event, so the default value of 1 (one) should suffice.  In some circumstances, it may benefit to have only one blob NOT trigger an event, in which case, setting this value to 2 or higher may serve some special purpose.&lt;br /&gt;
&lt;br /&gt;
==Maximum Blobs==&lt;br /&gt;
I believe that the usefulness of this parameter is negligible.  Normally set to 0 (zero), it is probably best left at that value.&lt;br /&gt;
&lt;br /&gt;
[http://custom-essay-writing-service.org/index.php custom writing]&lt;/div&gt;</summary>
		<author><name>Jeraldinesewell</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=AxisMotionDetection&amp;diff=4626</id>
		<title>AxisMotionDetection</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=AxisMotionDetection&amp;diff=4626"/>
		<updated>2011-08-17T11:44:11Z</updated>

		<summary type="html">&lt;p&gt;Jeraldinesewell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I had this performance problem while monitoring and event recording for 8-10 IP cameras using the ZM.&lt;br /&gt;
ZM is too good a software to abandon just for performance issues. So I decided I should pay more attention to the motion detection feature of the cameras I have and relieve the ZM server from the task of detecting motion.&lt;br /&gt;
I&amp;#039;ve finally managed to use the on-camera motion detection feature of Axis Cams and here are my notes:&lt;br /&gt;
&lt;br /&gt;
== Cameras ==&lt;br /&gt;
 &lt;br /&gt;
I&amp;#039;ve set my Axis camera as follows:&lt;br /&gt;
&lt;br /&gt;
[[Image:AxisMDetect1.png]]&lt;br /&gt;
[[Image:AxisMDetect2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The text &amp;quot;1|on 5|5|cause|text|showtext&amp;quot; means that&lt;br /&gt;
alarm will be triggered for the monitor which has ID=1,&lt;br /&gt;
alarm will set recording on&lt;br /&gt;
alarm will be cleared after 5 seconds.&lt;br /&gt;
The score of the alarm is 5 ( any score &amp;gt;0 is OK)&lt;br /&gt;
&amp;quot;text&amp;quot; and &amp;quot;showtext&amp;quot; are just explanatory notes.&lt;br /&gt;
&lt;br /&gt;
The ZM specs tells us that the format of the message can include a &amp;quot;duration&amp;quot; as long as the message is sent as:&lt;br /&gt;
&amp;quot;1|on+5|5|cause|text|showtext&amp;quot; bu the problem is the Axis camera cannot or will not save the &amp;quot;+&amp;quot; sign which appears in the message. A CGI parameter conversion problem I presume...&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;ve taken care of this &amp;quot;+&amp;quot; problem with a small modification in zmtrigger.pl source (see below).&lt;br /&gt;
&lt;br /&gt;
Next, I specified the host IP address of the zm computer and its default zmtrigger port of 6802.&lt;br /&gt;
&lt;br /&gt;
[[Image:AxisMDetect3.png]]&lt;br /&gt;
[[Image:AxisMDetect4.png]]&lt;br /&gt;
&lt;br /&gt;
The second important setup is the &amp;quot;motion detection&amp;quot; setup on the Axis. I created a window which covers the area of interest; kept the object size as small as possible, pulled the history slider all the way back to zero and left the sensitivity slide somewhere past the %50 value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ZM settings ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is no special setting for the ZM except that I&amp;#039;ve assigned the &amp;quot;Nodect&amp;quot; function to my camera monitor.&lt;br /&gt;
&lt;br /&gt;
[[Image:AxisMDetect5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, I modified the zmtrigger.pl file so that the first few lines of the&lt;br /&gt;
function handleMessage looks like this:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
         sub handleMessage{&lt;br /&gt;
        my $connection = shift;&lt;br /&gt;
        my $message = shift;&lt;br /&gt;
        #&lt;br /&gt;
        #  CUA  - Axis camera send the message quoted with&amp;quot;&lt;br /&gt;
        #  CUA  - Also Axis camera cannot save the plus sign which&lt;br /&gt;
        #  CUA  - possibly exists in the 1|on+20|score|cause|text|showtext formatted msg&lt;br /&gt;
&lt;br /&gt;
        $message=~ s/^\&amp;quot;//g;&lt;br /&gt;
        $message=~ s/\&amp;quot;$//g;&lt;br /&gt;
        $message=~ s/on /on\+/;&lt;br /&gt;
&lt;br /&gt;
        #  CUA - end of modifications&lt;br /&gt;
&lt;br /&gt;
        my ( $id, $action, $score, $cause, $text, $showtext ) = split( /\|/, $message );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a few other modifications I made in the zmtrigger.pl file are commenting out some unused modules and pushes:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
        use ZoneMinder::Trigger::Channel::Inet;&lt;br /&gt;
        #CUA use ZoneMinder::Trigger::Channel::Unix;&lt;br /&gt;
        #CUA use ZoneMinder::Trigger::Channel::Serial;&lt;br /&gt;
           use ZoneMinder::Trigger::Connection;&lt;br /&gt;
&lt;br /&gt;
         my @connections;&lt;br /&gt;
         push( @connections, ZoneMinder::Trigger::Connection-&amp;gt;new( name=&amp;gt;&amp;quot;Chan1&amp;quot;, channel=&amp;gt;ZoneMinder::Trigger::Channel::Inet-&amp;gt;new( port=&amp;gt;6802 ), mode=&amp;gt;&amp;quot;rw&amp;quot; ) );&lt;br /&gt;
         #CUA push( @connections, ZoneMinder::Trigger::Connection-&amp;gt;new( name=&amp;gt;&amp;quot;Chan2&amp;quot;, channel=&amp;gt;ZoneMinder::Trigger::Channel::Unix-&amp;gt;new( path=&amp;gt;&amp;#039;/tmp/test.sock&amp;#039; ),         mode=&amp;gt;&amp;quot;rw&amp;quot; ) );&lt;br /&gt;
        #push( @connections, ZoneMinder::Trigger::Connection-&amp;gt;new( name=&amp;gt;&amp;quot;Chan3&amp;quot;, channel=&amp;gt;ZoneMinder::Trigger::Channel::File-&amp;gt;new( path=&amp;gt;&amp;#039;/tmp/zmtrigger.out&amp;#039; ), mode=&amp;gt;&amp;quot;w&amp;quot; ) );&lt;br /&gt;
         #CUA push( @connections, ZoneMinder::Trigger::Connection-&amp;gt;new( name=&amp;gt;&amp;quot;Chan4&amp;quot;, channel=&amp;gt;ZoneMinder::Trigger::Channel::Serial-&amp;gt;new( path=&amp;gt;&amp;#039;/dev/ttyS0&amp;#039; ), mode=&amp;gt;&amp;quot;rw&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
my modifs are marked with &amp;quot;# CUA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These three regular expressions remove the quotes sent by Axis which envelope the message string and insert a plus sign if the &amp;quot;on&amp;quot; command is followed by a space). These 3 statements convert an incoming message of the form&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
        &amp;quot;1|on 25|5|cause|text|showtext&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
        1|on+25|5|cause|text|showtext&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and of course, you shouln&amp;quot;t forget to restart zmtrigger.pl; or better still modify the zm startup script so that it starts zmtrigger.pl everytime zm is [re]started.&lt;br /&gt;
&lt;br /&gt;
I added the line &amp;#039;/usr/bin/zmtrigger.pl &amp;amp;&amp;quot; in the start section of&lt;br /&gt;
/etc/init.d/zoneminder and also added the line &amp;quot;pkill zmtrigger.pl&amp;quot; in the stop section.&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
        start() {&lt;br /&gt;
        echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
        $command start&lt;br /&gt;
        # CUA&lt;br /&gt;
        /usr/bin/zmtrigger.pl &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        RETVAL=$?&lt;br /&gt;
        [ $RETVAL = 0 ] &amp;amp;&amp;amp; echo success&lt;br /&gt;
        [ $RETVAL != 0 ] &amp;amp;&amp;amp; echo failure&lt;br /&gt;
        echo&lt;br /&gt;
        [ $RETVAL = 0 ] &amp;amp;&amp;amp; touch /var/lock/zm&lt;br /&gt;
        return $RETVAL&lt;br /&gt;
        }&lt;br /&gt;
        stop() {&lt;br /&gt;
        echo -n $&amp;quot;Stopping $prog: &amp;quot;&lt;br /&gt;
        #&lt;br /&gt;
        # Why is this status check being done?&lt;br /&gt;
        # as $command stop returns 1 if zoneminder&lt;br /&gt;
        # is stopped, which will result in&lt;br /&gt;
        # this returning 1, which will stuff&lt;br /&gt;
        # dpkg when it tries to stop zoneminder before&lt;br /&gt;
        # uninstalling . . .&lt;br /&gt;
        #&lt;br /&gt;
        # CUA&lt;br /&gt;
        pkill zmtrigger.pl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I just hope that this helps other people trying to implement the on-camera motion detection with ZM.&lt;br /&gt;
&lt;br /&gt;
Again; many thanks to those people who developed ZM at the first place and to those who helped it to become a perfect opensource project.&lt;br /&gt;
&lt;br /&gt;
[http://www.zoneminder.com/forums/viewtopic.php?t=10872 Original Thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DO NOT PM THESE USERS &amp;quot;&amp;quot;just post a question in the forum&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Copied By: KingOfKYA&lt;br /&gt;
&lt;br /&gt;
Created By: cayfer&lt;br /&gt;
&lt;br /&gt;
[http://custom-essay-writing-service.org/index.php custom essay writing]&lt;/div&gt;</summary>
		<author><name>Jeraldinesewell</name></author>
	</entry>
</feed>