Module: OpenCVColor
- Includes:
- OpenCV
- Defined in:
- lib/opencv-color.rb,
lib/opencv-color/version.rb
Defined Under Namespace
Classes: Colors
Constant Summary collapse
- VERSION =
"1.0.0"
Class Method Summary collapse
Class Method Details
.learn(dir) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/opencv-color.rb', line 35 def learn(dir) Hash[samples(dir).map do |color, files| group = [[], [], [], []] files.map(&method(:load_image_colors)).each do |colors| colors.each do |c| 4.times do |i| group[i] << c[i] end end end range = group.map(&:to_scale).inject({low: [], high: []}) do |memo, g| sd = g.sd mean = g.mean memo[:low] << ([mean - 3 * sd, 0].max).floor memo[:high] << (mean + 3 * sd).ceil memo end [File.basename(color).downcase.gsub(/[^a-z_]/, '_'), range] end] end |
.load_image_colors(file) ⇒ Object
56 57 58 |
# File 'lib/opencv-color.rb', line 56 def load_image_colors(file) Colors.new(IplImage.load(file, OpenCV::CV_LOAD_IMAGE_ANYCOLOR | OpenCV::CV_LOAD_IMAGE_ANYDEPTH).BGR2HSV) end |
.samples(dir) ⇒ Object
29 30 31 32 33 |
# File 'lib/opencv-color.rb', line 29 def samples(dir) Dir["#{dir}/*"].map do |color| [color, Dir["#{color}/*"]] end end |