이미지를 선명하게 하기(cvMul 함수)



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
42
43
44
45
46
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
 
void main() {
    IplImage *srcImage, *tempImage=0*multiImage=0*divImage=0;
 
 
    srcImage = cvLoadImage("D:/study/testimage.jpg"-1);    //이미지 로드
 
 
    //이미지객체 생성
    //cvCreateImage(이미지크기, Depth, 채널수)
    tempImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3);
    multiImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3);
    divImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3);
 
    //cvSet(결과이미지, 픽셀값, 마스크) : 행렬이나 이미지를 주어진 픽셀값으로 채움
    cvSet(tempImage, cvScalarAll(1), NULL);
 
    //곱셈 : 명암대비 증가 -> 선명한 영상
    //나눗셈 : 명암대비 감소
    //cvMul(첫번째이미지, 두번째이미지, 결과이미지, 곱하는 상수)
    cvMul(srcImage, tempImage, multiImage,1.5);
    cvMul(srcImage, tempImage, divImage, 1/2.0);
 
 
 
    //create window 
    cvNamedWindow("original", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("multiply", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("divide", CV_WINDOW_AUTOSIZE);
 
    //show window
    cvShowImage("original", srcImage);
    cvShowImage("multiply", multiImage);
    cvShowImage("divide", divImage);
 
    cvWaitKey(0);
 
    //release image
    cvReleaseImage(&srcImage);
    cvReleaseImage(&multiImage);
    cvReleaseImage(&divImage);
}
 
cs



결과




+ Recent posts