Skip to content

Instantly share code, notes, and snippets.

@ts-3156
Created June 22, 2011 08:22
Show Gist options
  • Save ts-3156/1039693 to your computer and use it in GitHub Desktop.
Save ts-3156/1039693 to your computer and use it in GitHub Desktop.
void Filter::showChannel()
{
int r_avg, g_avg, b_avg;
CvScalar average;
IplImage *src_img, *red_1, *green_1, *blue_1;
IplImage *red_3, *green_3, *blue_3;
cvNamedWindow("src");
cvNamedWindow("red");
cvNamedWindow("green");
cvNamedWindow("blue");
char* file_name = "images/twitter_icon.jpg";
src_img = cvLoadImage(file_name, CV_LOAD_IMAGE_ANYCOLOR);
if (src_img == NULL){
printf("show: %s is not found.\n", file_name);
return;
}
red_1 = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U, 1);
green_1 = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U, 1);
blue_1 = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U, 1);
red_3 = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U, 3);
green_3 = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U, 3);
blue_3 = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U, 3);
cvSetZero(red_3);
cvSetZero(green_3);
cvSetZero(blue_3);
cvSplit(src_img, blue_1, green_1, red_1, NULL);
cvMerge(NULL, NULL, red_1, NULL, red_3);
cvMerge(NULL, green_1, NULL, NULL, green_3);
cvMerge(blue_1, NULL, NULL, NULL, blue_3);
cvShowImage("src", src_img);
cvShowImage("red", red_3);
cvShowImage("green", green_3);
cvShowImage("blue", blue_3);
average = cvAvg(src_img);
r_avg = (int)average.val[2];
g_avg = (int)average.val[1];
b_avg = (int)average.val[0];
printf("avg=(%3d, %3d, %3d)\n", r_avg, g_avg, b_avg);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&red_1);
cvReleaseImage(&green_1);
cvReleaseImage(&blue_1);
cvReleaseImage(&red_3);
cvReleaseImage(&green_3);
cvReleaseImage(&blue_3);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment