OpenCV/C++ 图片锐化

偷偷拿来记录一下萌新的cs路——day 42 暑假培训作业

处理平面图形需要用到2D卷积。常见锐化滤波器:

(-k  -k  -k

   -k  8k  -k

   -k  -k  -k)

 

用(0,1,0     处理:

       -1,5,-1

       0,-1,0)

#include 
#include 

using namespace std;
using namespace cv;

int main()
{
    // Read image
    Mat image = imread("cat.jpg");

    // Print error message
    if (image.empty()) {
        cout << "Cannot read image. " << endl;
    }

    // Apply sharpening using kernel
    Mat sharp_img;
    Mat kernel3 = (Mat_(3, 3) << 0, -1, 0,
                                        -1, 5, -1,
                                         0, -1, 0);
    filter2D(image, sharp_img, -1, kernel3, Point(-1, -1), 0, BORDER_DEFAULT);  // BORDER_DEFAULT: calculate all borders
    imshow("Original", image);
    imshow("Sharpenned", sharp_img);
    imwrite("sharp_image.jpg", sharp_img);
    waitKey();
    destroyAllWindows();
}

 

用(-1,-1,-1,  处理:

       -1,9,-1,

       -1,-1,-1)

你可能感兴趣的:(opencv)