OpenCV实现素描效果

一、概述

  实现素描效果的步骤:

  1.将输入图像转换为灰度图像

  2.使用滤波(中值滤波、高斯滤波)去除图像噪声

  3.使用拉普拉斯算子进行边缘描述

  4.使用二值分割去除无用噪声

  5.输出图像并展示

二、源码示例

/**
 * 素描
 * @param inputImagePath
 */
void showSketchImage(char *inputImagePath) {
    //原图
    Mat src = imread(inputImagePath);
    //灰度图像
    Mat gray;
    cvtColor(src, gray, COLOR_BGR2GRAY);
    //使用中值滤波器进行平滑处理
    medianBlur(gray, gray, 7);
    //使用拉普拉斯算子进行边缘检测
    Mat edges_Image;
    Laplacian(gray, edges_Image, CV_8U, 5);
    //输出原图
    imshow("src", src);
    waitKey(0);
    imshow("edges_Image", edges_Image);
    waitKey(0);
    //使图像更像素描,作二进制处理,高低阈值处理
    Mat result;
    threshold(edges_Image, result, 80, 255, THRESH_BINARY_INV);
    imshow("Sketch", result);
    waitKey(0);
}

 

三、效果图

 

posted on 2021-06-03 13:44  飘杨......  阅读(426)  评论(0编辑  收藏  举报