ruby-opencvでカラーチャネルを分離したり

splitでblue,green,redを分離できるのだけど、シングルプレーンからIplImage.merge(blue,green,red,nil)とかしても、BGR画像を復元できない。
何故??

require 'opencv'
include OpenCV
captureDevice,mode = 0,nil
if ARGV.size > 0
  captureDevice = ARGV.shift
  captureDevice = captureDevice.to_i if /^\d$/ =~ captureDevice
end
win = GUI::Window.new("inp")
red = GUI::Window.new("red")
gre = GUI::Window.new("green")
blu = GUI::Window.new("blue")
cap = CvCapture.open(captureDevice)
begin
  fps = cap.fps
  if fps > 67 or fps < 5 # 変なfpsの時は10fps(100msec間隔)にする
    fps = 10
  end
rescue
  fps = 10
end
frame_msec = 1000/fps
loop do
  inp = cap.query
  break unless inp
  win.show inp
  b,g,r = inp.split
  red.show r
  gre.show g
  blu.show b
  bgr = inp.avg # 各カラープレーン毎に平均をとる #
  ravg,gavg,bavg = bgr[2],bgr[1],bgr[0]
  if ravg > gavg
    if ravg > bavg
      puts("赤っぽい")
    else
      puts("青っぽい")
    end
  else
    if gavg > bavg
      puts("緑っぽい")
    else
      puts("青っぽい")
    end
  end
  key = GUI::wait_key(frame_msec)
  mode = key.chr if key
  break if mode == 'q'
end