이미지 블러링 하기



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
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
 
void main() {
    IplImage *srcImage = cvLoadImage("D:/study/testimage.jpg"-1);
    IplImage *resultImage3x3 = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3);
    IplImage *resultImage5x5 = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3);
 
    //cvSmooth : 이미지 스무딩(=블러링) 함수
    //cvSmooth(원본이미지, 결과이미지, 스무딩 형태, 마스크가로크기, 마스크 세로크기, 가우시안 마스크인 경우 표준편차1, 표준편차2)
    //스무딩 형태
    //CV_BLUR :  단순 블러링(param1 x param2 영역의 평균값을 이용한 블러링)
    //CV_GAUSSIAN : 가우시안 블러링
    //CV_MEDIAN : 중앙값 블러링(param1 x param2 영역의 중앙값을 이용한 블러링)
    cvSmooth(srcImage, resultImage3x3, CV_BLUR, 3300);
    cvSmooth(srcImage, resultImage5x5, CV_BLUR, 5500);
 
 
    //create window
    cvNamedWindow("source image", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("3x3 image", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("5x5 image", CV_WINDOW_AUTOSIZE);
 
    //show window
    cvShowImage("source image", srcImage);
    cvShowImage("3x3 image", resultImage3x3);
    cvShowImage("5x5 image", resultImage5x5);
 
    cvWaitKey(0);
 
    cvReleaseImage(&srcImage);
    cvReleaseImage(&resultImage3x3);
    cvReleaseImage(&resultImage5x5);
}
 
cs



결과

3x3마스크와 5x5마스크로 블러링된 이미지



+ Recent posts