rmotion 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +674 -0
- data/README +77 -0
- data/examples/cam.rb +13 -0
- data/examples/video.rb +32 -0
- data/ext/rmotion/extconf.rb +3 -0
- data/ext/rmotion/rmotion.h +97 -0
- data/ext/rmotion/rmotion_cfg.c +196 -0
- data/ext/rmotion/rmotion_main.c +392 -0
- data/lib/rmotion.rb +64 -0
- data/lib/rmotion.so +0 -0
- metadata +71 -0
data/lib/rmotion.rb
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require 'rmotion.so'
|
|
2
|
+
|
|
3
|
+
class Entity
|
|
4
|
+
|
|
5
|
+
def initialize
|
|
6
|
+
@tlx = @tly = @brx = @bry = nil
|
|
7
|
+
@@radius = 60
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def center
|
|
11
|
+
[(@tlx+@brx)/2,(@tly+@bry)/2] unless @tlx.nil?
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def corners
|
|
15
|
+
[@tlx,@tly,@brx,@bry]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def compare oth
|
|
19
|
+
if center.nil? or oth.center.nil?
|
|
20
|
+
false
|
|
21
|
+
else
|
|
22
|
+
((center.first - oth.center.first).abs < @@radius) and ((center.last - oth.center.last).abs < @@radius)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.reorder previous, current
|
|
27
|
+
|
|
28
|
+
previous.each_with_index do |p,i|
|
|
29
|
+
next if p.center.nil?
|
|
30
|
+
found = false
|
|
31
|
+
current.each_with_index do |c,k|
|
|
32
|
+
if p.compare c
|
|
33
|
+
previous[i] = c
|
|
34
|
+
current[k] = Entity.new
|
|
35
|
+
found = true
|
|
36
|
+
break
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
unless found
|
|
40
|
+
previous[i] = Entity.new
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
current.each do |c|
|
|
45
|
+
next if c.center.nil?
|
|
46
|
+
previous.each_with_index do |p,i|
|
|
47
|
+
if p.center.nil?
|
|
48
|
+
previous[i] = c
|
|
49
|
+
break
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def self.status
|
|
56
|
+
status = []
|
|
57
|
+
8.times do
|
|
58
|
+
status << Entity.new
|
|
59
|
+
end
|
|
60
|
+
status
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
data/lib/rmotion.so
ADDED
|
Binary file
|
metadata
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rmotion
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 0
|
|
8
|
+
- 1
|
|
9
|
+
version: 0.0.1
|
|
10
|
+
platform: ruby
|
|
11
|
+
authors:
|
|
12
|
+
- Riccardo Cecolin
|
|
13
|
+
autorequire:
|
|
14
|
+
bindir: bin
|
|
15
|
+
cert_chain: []
|
|
16
|
+
|
|
17
|
+
date: 2010-07-08 00:00:00 +02:00
|
|
18
|
+
default_executable:
|
|
19
|
+
dependencies: []
|
|
20
|
+
|
|
21
|
+
description: RMotion provides a simple interface to build motion detection software in ruby. Many kind of informations about moving entities will be available to applications, and the algorithm is heavily customizable since different cameras record different levels of noise.
|
|
22
|
+
email: rikiji@playkanji.com
|
|
23
|
+
executables: []
|
|
24
|
+
|
|
25
|
+
extensions:
|
|
26
|
+
- ext/rmotion/extconf.rb
|
|
27
|
+
extra_rdoc_files: []
|
|
28
|
+
|
|
29
|
+
files:
|
|
30
|
+
- examples/video.rb
|
|
31
|
+
- examples/cam.rb
|
|
32
|
+
- ext/rmotion/extconf.rb
|
|
33
|
+
- ext/rmotion/rmotion.h
|
|
34
|
+
- ext/rmotion/rmotion_main.c
|
|
35
|
+
- ext/rmotion/rmotion_cfg.c
|
|
36
|
+
- lib/rmotion.so
|
|
37
|
+
- lib/rmotion.rb
|
|
38
|
+
- LICENSE
|
|
39
|
+
- README
|
|
40
|
+
has_rdoc: true
|
|
41
|
+
homepage: http://www.rikiji.it
|
|
42
|
+
licenses:
|
|
43
|
+
- GPL
|
|
44
|
+
post_install_message:
|
|
45
|
+
rdoc_options: []
|
|
46
|
+
|
|
47
|
+
require_paths:
|
|
48
|
+
- lib
|
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
segments:
|
|
54
|
+
- 0
|
|
55
|
+
version: "0"
|
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
segments:
|
|
61
|
+
- 0
|
|
62
|
+
version: "0"
|
|
63
|
+
requirements: []
|
|
64
|
+
|
|
65
|
+
rubyforge_project:
|
|
66
|
+
rubygems_version: 1.3.6
|
|
67
|
+
signing_key:
|
|
68
|
+
specification_version: 3
|
|
69
|
+
summary: RMotion provides a simple interface to build motion detection software in ruby.
|
|
70
|
+
test_files: []
|
|
71
|
+
|