반응형
    
    
    
  | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <stdio.h> #include <opencv/cv.h> #include <opencv/highgui.h> int main() {     IplImage *image;     // -1이면 원본 그대로     image = cvLoadImage("D:/opencv/sources/samples/data/aero1.jpg", -1);     // 윈도우 생성(원본,R,G,B)     cvNamedWindow("image", CV_WINDOW_AUTOSIZE);     cvNamedWindow("R_channel_image", CV_WINDOW_AUTOSIZE);     cvNamedWindow("G_channel_image", CV_WINDOW_AUTOSIZE);     cvNamedWindow("B_channel_image", CV_WINDOW_AUTOSIZE);     // 영상을 만들기 위해 사용하는 함수(size, depth(영상 데이터의 깊이), channels(1 = 흑백, 3 = RGB)     IplImage *R_plane = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);     IplImage *G_plane = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);     IplImage *B_plane = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);     cvSplit(image, B_plane, G_plane, R_plane, 0);     // 이미지 출력     cvShowImage("image", image);     cvShowImage("R_channel_image", R_plane);     cvShowImage("G_channel_image", G_plane);     cvShowImage("B_channel_image", B_plane);     cvSaveImage("./image_1.jpg", image);     cvSaveImage("./Rimage_1.jpg", R_plane);     cvSaveImage("./Gimage_1.jpg", G_plane);     cvSaveImage("./Bimage_1.jpg", B_plane);     // 아무키 입력 대기     cvWaitKey(0);     cvReleaseImage(&image);     cvReleaseImage(&R_plane);     cvReleaseImage(&G_plane);     cvReleaseImage(&B_plane);     return 0; } | cs | 
윈도우 생성 후
split을 통해 다채널 영상을 단일 채널 영상으로 분리한다.
마지막으로 각각 분리된 이미지를 출력해주면 된다.
그리고 cvSaveImage를 통해 저장한다.
반응형
    
    
    
  'Applied > OpenCV' 카테고리의 다른 글
| 이미지에 직선 긋기 (0) | 2019.04.30 | 
|---|---|
| blur 처리를 이용하는 방법, 응용 (0) | 2019.04.29 | 
| 기본 이미지 불러오기, 데이터 출력 (0) | 2019.04.23 | 
| 실시간 캠화면 보기 Live Cam (0) | 2019.04.23 | 
| OpenCV 설치(Visual Studio 2015, 2017) (2) | 2019.04.23 |