ruby-opencvでのROIの操作

OpenCVには「ROI」(Region Of Interest:注目領域)という概念があり、画像に対してこれを設定すると、その領域に対してのみ種々の操作が行なわれる様になる。

ROIを設定している状態で画像を描画させるとROIの部分のみ描画されるし、copyを行なうとROIの部分のみコピーされる。

require 'opencv'
include OpenCV
win = GUI::Window.new("w")
img1 = IplImage.load(ARGV.shift) # 1032x581の画像を読み込む。 #
img1.set_roi(CvRect.new(320,100, 300,200)) # 幅300x縦200の矩形領域をROIとしてセット(オフセット位置=(320,100))
img2 = img1.copy
img1.reset_roi;img2.reset_roi # ROIを解除するには reset_roi 
printf("img1 : %dx%d\n", img1.width, img1.height) #⇒ 1032x581
printf("img2 : %dx%d\n", img2.width, img2.height) #⇒ 300x200
win.show img1
GUI::wait_key 0
win.show img2
GUI::wait_key 0