#include <cv.hpp> using namespace cv; int main( int argc, char** argv ) { Mat image; image = imread( "resource/lena.png", IMREAD_COLOR ); Mat OutputR( image.rows, image.cols, CV_8UC3, Scalar(0, 0, 0) ); Mat OutputG( image.rows, image.cols, CV_8UC3, Scalar(0, 0, 0) ); Mat OutputB( image.rows, image.cols, CV_8UC3, Scalar(0, 0, 0) ); int height = image.rows; int width = image.cols; for(int row = 0; row < height; row++) { for(int col = 0; col < width; col++) { OutputB.at<Vec3b>(row, col)[0] = image.at<Vec3b>(row, col)[0]; OutputB.at<Vec3b>(row, col)[1] = 0; OutputB.at<Vec3b>(row, col)[2] = 0; OutputG.at<Vec3b>(row, col)[0] = 0; OutputG.at<Vec3b>(row, col)[1] = image.at<Vec3b>(row, col)[1]; OutputG.at<Vec3b>(row, col)[2] = 0; OutputR.at<Vec3b>(row, col)[0] = 0; OutputR.at<Vec3b>(row, col)[1] = 0; OutputR.at<Vec3b>(row, col)[2] = image.at<Vec3b>(row, col)[2]; } } namedWindow("outr", WINDOW_NORMAL); imshow("outr", OutputR); namedWindow("outg", WINDOW_NORMAL); imshow("outg", OutputG); namedWindow("outb", WINDOW_NORMAL); imshow("outb", OutputB); waitKey(0); return 0; }
Results:
No comments:
Post a Comment