IT/- 프로그래밍

OpenCV 컬러영상을 흑백영상으로 변환하기

혁준7519 2017. 5. 12. 06:15

컬러영상을 흑백영상으로 변환하기

프레임에서 뽑은 컬러이미지를 흑백이미지로 변환하면 된다



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
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
 
void main() {
    IplImage *frameImage, *blackImage;
    //cvCaptureFromFile(파일명) : 동영상 파일 불러오기
    CvCapture *video = cvCaptureFromFile("D:/study/testmedia.mov");
 
 
    cvNamedWindow("video", CV_WINDOW_KEEPRATIO);
 
    //무한루프로 프레임 돌리며 이미지 구해서 재생
    while (1) {
        //cvGrabFrame(동영상) : 하나의 프레임을 잡음
        cvGrabFrame(video);
 
        //cvRetrieveFrame(동영상) : 잡은 프레임으로부터 이미지를 구함
        frameImage = cvRetrieveFrame(video);
 
        if (!frameImage) { break; }
 
        blackImage = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 1);
        //cvCvtColor(원본이미지, 결과이미지, 변환모드)
        //변환모드 : CV_<src color code>2<dst color code>
        //color code : RGB, BGR, GRAY, HSV, YcrCb, XYZ, Lab, Luv, HLS
        cvCvtColor(frameImage, blackImage, CV_BGR2GRAY);    //BGR 컬러이미지를 GRAY 흑백이미지로 변환
        cvShowImage("video", blackImage);    //윈도우에 이미지 표시
 
 
        if (cvWaitKey(10> 0) {
            break;
        }
    }
 
 
    //cvReleaseCapture(해제할 동영상) : 메모리에서 동영상 해제
    cvReleaseCapture(&video);    //resource 해제
    cvReleaseImage(&blackImage);
}
cs



결과

흑백 영상이 재생된다