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函数进行边缘检测。

 

posted on   gary_123  阅读(847)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示