title: OpenCV: Taking a 3 channel RGB image, splitting channels and viewing an image with only R+G
body: <p>I wanted to look at only the R+G channels in an RGB image because I get better contrasts to detect an object when the Blue channel is removed. I used OpenCV to split the channels,but while merging the same after setting the blue channel to 0, my code doesn't compile.</p>
  
  <pre><code>#include &lt;opencv2/core/core.hpp&gt;
  #include &lt;opencv2/highgui/highgui.hpp&gt;
  #include &lt;iostream&gt;
  
  using namespace cv;
  using namespace std;
  
  int main( int argc, char** argv )
  {
      if( argc != 2)
      {
       cout &lt;&lt;" Usage: display_image ImageToLoadAndDisplay" &lt;&lt; endl;
       return -1;
      }
  
      Mat image,fin_img;
      image = imread(argv[1], CV_LOAD_IMAGE_COLOR);   // Read the file
  
      if(! image.data )                              // Check for invalid input
      {
          cout &lt;&lt;  "Could not open or find the image" &lt;&lt; std::endl ;
          return -1;
      }
  
     namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
                        // Show our image inside it.
  
      // Create Windows
      namedWindow("Red",1);
      namedWindow("Green",1);
      namedWindow("Blue",1);
  
      // Create Matrices (make sure there is an image in input!)
  
      Mat channel[3];
      imshow( "Original Image", image ); 
  
  
      // The actual splitting.
      split(image, channel);
  
  
     channel[0]=Mat::zeros(Size(image.rows, image.cols), CV_8UC1);//Set blue channel to 0
  
      //Merging red and green channels
  
      merge(channel,image);
      imshow("R+G", image);
  
      waitKey(0);//Wait for a keystroke in the window
      return 0;
  }
  </code></pre>
  
  <p>Could I have any feedback on where I'm going wrong? I suspect it is with setting the blue channel to 0. Is there any better way to set it to 0?Is there a way to use cvMixChannels() to do this?</p>