2014년 10월 10일 금요일

OpenCV에서 사용자 Mask(kernel)를 만들고 convolution

OpenCV에서 영상에 필터링을 할때 Kernel을 필요에 따라 새로 만들어야 할 경우가 많다. 아래 처럼 kernel을 만들고 filter2D를 사용하면 된다.

[-] Collapse
    Mat srcMat =  imread("Image.jpg",CV_LOAD_IMAGE_GRAYSCALE );

    float data[39] = {1,1,1,0,0,0,-6,0,0,0,1,1,1,
        1,1,1,0,0,0,-6,0,0,0,1,1,1,
        1,1,1,0,0,0,-6,0,0,0,1,1,1};

    Mat kernel = Mat (3,13,CV_32F,data);
    Mat dstMat;
   filter2D(srcMat,dstMat,srcMat.depth(),kernel,Point(6,1));

    imwrite("UserFilter.jpg",dstMat);



댓글 없음:

댓글 쓰기