SRM Vision 暑期培训

by Leozheng @ SRMVision

§10 卷积、滤波 / 腐蚀膨胀 

#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
    //----------------读取图像----------------
    Mat img = imread("test.png", 0); // 0 表示将图片转化为灰度图
    Mat resultX, resultY, resultXY;
    //-------------Sobel 边缘检测-------------
    // X 方向一阶边缘
    Sobel(img, resultX, CV_16S, 2, 0, 1);
    convertScaleAbs(resultX, resultX); // 转化结果回到 uint8 类型
    // Y 方向一阶边缘
    Sobel(img, resultY, CV_16S, 0, 1, 3);
    convertScaleAbs(resultY, resultY);
    // 整幅图像的一阶边缘
    addWeighted(resultX, 0.5, resultY, 0.5, 0, resultXY);
    // 显示图像
    imshow("resultX", resultX);
    imshow("resultY", resultY);
    imshow("resultXY", resultXY);
    waitKey(0);
    return 0;
}

6.4 腐蚀膨胀

#include <opencv2/opencv.hpp>
using namespace cv;
int main(){
    auto img = imread("test.png", 0);
    threshold(img, img, 180, 255, THRESH_BINARY);
    auto kernel = getStructuringElement(MORPH_RECT, Size(3, 3));
    
    Mat img_erode, img_dilate;
    erode(img, img_erode, kernel); // 腐蚀
    dilate(img, img_dilate, kernel); // 膨胀
    imshow("erode", img_erode);
    imshow("dilate", img_dilate);
    
    waitKey(0);
    destroyAllWindows();
    return 0;
}

第十讲 - 作业:二选一

1. 自学OpenCV卷积函数,实现如右上图一样的雕刻感。

 

2. 实现一个横向模糊的滤镜,实现效果如右下图。

 

上交源码与运行截图

感 谢

@ SRMVision