美文网首页
openCV3+VS2017学习笔记(二)

openCV3+VS2017学习笔记(二)

作者: whisper330 | 来源:发表于2018-11-29 19:14 被阅读0次

    示例2-5 加载图像并且在显示之前用高斯平滑图像(P29)

          当我们建立了一个播放视频的小程序之后,我们还想对视频的每一帧进行处理,比如图像平滑,所以在前一篇的程序的基础之上做了一些改进。首先定义一个模糊图像函数,名为example2_5。

    void example2_5(const cv::Mat&image) {

    cv::namedWindow("example2_5-in", cv::WINDOW_AUTOSIZE);//新建两个窗口,一个存当前帧,一个存高斯模糊后的帧

    cv::namedWindow("example2_5-out", cv::WINDOW_AUTOSIZE);

    cv::imshow("example2_5-in", image);

    cv::Mat out;

    cv::GaussianBlur(image, out, cv::Size(5, 5), 3, 3);//高斯模糊,GaussianBlur(原图,处理后图像,模版大小,x方向标准差,y方向上标准差)

    cv::GaussianBlur(out, out, cv::Size(5, 5), 3, 3);

    cv::imshow("example2_5-out", out);

    }

    在主函数中的while循环里调用图像模糊程序    example2_5(frame);

    运行结果如下。第一个图是上篇文章建立的视频播放窗口(example2_4),中间的图是本次建立的原图像显示窗口(example2_5-in),最后的图是模糊后图像的显示窗口(example2_5-out)。在两种播放模式下会同步显示。

    示例2-6.7.8 一系列的图像操作,降采样(可用来构建尺度空间),转换为灰度图像,Canny边缘检测。(P30,31)

    #include "pch.h"

    #include "opencv2/opencv.hpp"

    using namespace cv;

    int main() {

    Mat img1, img2, img3, img4;

    namedWindow("1", WINDOW_AUTOSIZE);

    namedWindow("2", WINDOW_AUTOSIZE);

    namedWindow("3", WINDOW_AUTOSIZE);

    namedWindow("4", WINDOW_AUTOSIZE);

    img1 = imread("C:\\Users\\Administrator\\Pictures\\zi.jpg");

    imshow("1", img1);

    pyrDown(img1, img2);

    imshow("2", img2);

    cvtColor(img2, img3, COLOR_BGR2GRAY);//把彩色图像转化为灰度图像

    imshow("3", img3);

    Canny(img3, img4, 10, 150, 3);//Canny边缘检测算子,用法:Canny(原图,边缘图,最低阈值,最高阈值,sobel算子大小)

    imshow("4", img4);

    waitKey(0);

    return 0;

    }

    运行结果如下。

    附上Canny边缘检测算子的相关知识链接

    opencv官方帮助文件(用法)                    http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html

    csdn优秀博文(原理详解):https://blog.csdn.net/fengye2two/article/details/79190759

    相关文章

      网友评论

          本文标题:openCV3+VS2017学习笔记(二)

          本文链接:https://www.haomeiwen.com/subject/mcmfcqtx.html