1
0
Fork 0
mirror of https://github.com/ruby-opencv/ruby-opencv synced 2023-03-27 23:22:12 -04:00
ruby-opencv/examples/inpaint.rb
ser1zw 7add8ec805 removed some unnecessary CvMat methods
Removed methods are:
  CvMat#rb_morphology_*
  CvMat#rb_copy_make_border_*
  CvMat#rb_hough_lines_*
  CvMat#rb_hough_circles_*
  CvMat#rb_inpaint_*
  CvMat#rb_match_shapes_*
  CvMat#rb_threshold_*
  CvMat#rb_find_fundamental_mat_*
  CvMat#rb_smooth_*
  CvMat#rb_slice_width
  CvMat#rb_slice_height
  CvMat#rb_mix_channels
2011-07-08 20:48:24 +09:00

42 lines
882 B
Ruby
Executable file

#!/usr/bin/env ruby
# inpaint.rb
require "rubygems"
require "opencv"
include OpenCV
owindow = GUI::Window.new "original"
mwindow = GUI::Window.new "mask"
iwindow = GUI::Window.new "inpaint"
image = IplImage::load "inpaint.png"
b, g, r = image.split
original_mask = r.threshold(0x00, 0xFF, CV_THRESH_BINARY_INV) & b.threshold(0x00, 0xFF, CV_THRESH_BINARY_INV)
mask = original_mask.copy
num_dilate = 3
radius = 5
dilate_bar = mwindow.set_trackbar("dilate", 10, num_dilate){|v|
num_dilate = v
mask = original_mask.dilate(nil, num_dilate)
mwindow.show mask
}
radius_bar = mwindow.set_trackbar("radius", 30, radius){|v|
radius = v
}
owindow.show image
mwindow.show mask
while key = GUI::wait_key
case key.chr
when "\e" # esc
exit
when "n"
iwindow.show image.inpaint_ns(mask, radius)
when "t"
iwindow.show image.inpaint_telea(mask, radius)
end
end