반응형
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 |