3채널 영상을 1채널 영상으로 분리하여 영상 출력예제
c++)
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 | #include <opencv/cv.h> #include <opencv/highgui.h> void main() { IplImage *image = NULL; //cvLoadImage(파일이름 , 이미지색상) : 메모리상에 로드 image = cvLoadImage("D:/study/colorimage.png", -1); //iscolor > 0 : 3채널 컬러 , 0 : 흑백 , < 0 : 원래영상 //cvCreateImage(영상크기 , 영상의 깊이 , 픽셀당 채널수) : 영상 생성 IplImage *RColor = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1); IplImage *GColor = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1); IplImage *BColor = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1); //cvSplit(다채널영상 , 단일채널영상1, 단일채널영상3, 단일채널영상3, 단일채널영상4) : 다채널 영상을 단일 채널영상으로 분리 cvSplit(image, BColor, GColor, RColor, 0); //윈도우 생성 cvNamedWindow("Image", CV_WINDOW_AUTOSIZE); cvNamedWindow("RColor", CV_WINDOW_AUTOSIZE); cvNamedWindow("GColor", CV_WINDOW_AUTOSIZE); cvNamedWindow("BColor", CV_WINDOW_AUTOSIZE); //cvShowImage(윈도우이름, 출력영상) : 윈도우에 영상 출력 cvShowImage("Image", image); cvShowImage("RColor", RColor); cvShowImage("GColor", GColor); cvShowImage("BColor", BColor); cvWaitKey(0); //키입력 기다림 //cvReleaseImage(영상포인터의 주소) : 메모리상에서 내림 cvReleaseImage(&image); cvReleaseImage(&RColor); cvReleaseImage(&GColor); cvReleaseImage(&BColor); } | cs |
결과
컬러영상이 각각 R, G, B 1채널 영상으로 분리되었다
'IT > - 프로그래밍' 카테고리의 다른 글
OpenCV 이미지 가운데에 흰색 선긋기 예제 (0) | 2017.04.04 |
---|---|
OpenCV 윈도우에 출력한 영상을 이미지 파일로 저장하기 (0) | 2017.04.03 |
Cocos cJSON 사용 (0) | 2017.04.01 |
Cocos HTTP 통신 (0) | 2017.03.31 |
IOS Hello World! 출력 (0) | 2017.03.30 |