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); }
定义一个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); }
4、第四个程序:canny边缘检测
首先,载入图像,并将其转成灰度图,再用blur函数进行图像模糊以降噪,然后用canny函数进行边缘检测。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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】