1.5快速上手OpenCV图像处理

在上一节中,已经完成了OPENCV的配置,在本节接触几个Opencv图像处理相关的程序,看看opencv用简洁的代码能够实现哪些有趣的图像效果。

1、第一个程序:图像显示

#include<opencv2/opencv.hpp>
using namespace cv;//包含cv命名空间
void main()
{
    Mat srcImage = imread("D:\FOR_SLAM\lena.jpg");
    imshow("原始图",srcImage);//显示图像
    waitKey(0);//等待任意按键按下
}

 2、第二个程序:图像腐蚀

如何用opencv实现最基本的形态学运算之一---腐蚀,即用图像中的暗色部分“腐蚀”掉图像中的高亮部分。

#include<opencv2/highgui/highgui.hpp>//opencv highgui模块头文件
#include<opencv2/imgproc/imgproc.hpp>//opencv图像处理头文件
using namespace cv;//包含cv命名空间
int main()
{
    //载入原图
    Mat srcImage = imread("D:\FOR_SLAM\lena.jpg");
    //显示原图
    imshow("原始图",srcImage);//显示图像
    //进行腐蚀操作
    Mat element = getStructuringElement(MORPH_RECT,Size(15,15));
    Mat dstImage;
    erode(srcImage,dstImage,element);
    //显示效果图
    imshow("腐蚀效果图",dstImage);
    waitKey(0);//等待任意按键按下
    return (0);
}
View Code

定义一个Mat类型的变量来获取getStructuringElement函数的返回值,而getStructuringElement函数的返回值为指定形状和尺寸的结构元素(内核矩阵)。参数准备完毕,接着便可以调用erode函数进行图像腐蚀操作

3、第三个程序:图像模糊

opencv对图像进行均值滤波操作,主要使用进行均值滤波操作额blur函数。

#include<opencv2/highgui/highgui.hpp>//opencv highgui模块头文件
#include<opencv2/imgproc/imgproc.hpp>//opencv图像处理头文件
using namespace cv;//包含cv命名空间
int main()
{
    //载入原图
    Mat srcImage = imread("D:\FOR_SLAM\lena.jpg");
    //显示原图
    imshow("原始图",srcImage);//显示图像
    //进行均值滤波操作
    Mat dstImage;
    blur(srcImage,dstImage,Size(7,7));
    //显示效果图
    imshow("滤波效果图",dstImage);
    waitKey(0);//等待任意按键按下
    return (0);
}
View Code

4、第四个程序:canny边缘检测

首先,载入图像,并将其转成灰度图,再用blur函数进行图像模糊以降噪,然后用canny函数进行边缘检测。

原文地址:https://www.cnblogs.com/gary-guo/p/6640882.html