opencv的图像处理(源码及详细注释)

1. 1-1展示图片,后关闭

​
#include<iostream>
 #include <opencv2/core/core.hpp>
 #include <opencv2/highgui/highgui.hpp>
 using namespace cv;
 int main()
 {
     // 读入一张图片
     Mat img = imread("D://桌面/各种各样//s.jpg");   //注意这里路径的斜杠
     // 创建一个名为 “猫咪”的窗口
     namedWindow("CAT");  //这一步创建了一个空白的窗口;如果此处和imshow处名字不同,图片并没有显示在这个窗口里;名字相同的时候就是同一个窗口没有这个依然可以运行   猜测类似于int a = 0;和int a;  a = 0;的区别是一样的
     // 在窗口中显示猫¨
     imshow("CAT", img);  //在这里重新创建了窗口显示图片
     // 等待n ms后窗口自动关闭
     waitKey(2000);
     //n替换为阿拉伯数字
     return 0;
 }

​

​​​​​​​

  • 当把这里的图片放入源文件的文件夹中时,可直接写为 Mat img = imread("s.jpg");

  • 当把14行的2000改成0时,意味着程序会等你按下任意按键后关闭图片

1.1-2腐蚀图片操作

 #include<iostream>
 #include <opencv2/core/core.hpp>
 #include <opencv2/highgui/highgui.hpp>
 #include<opencv2/imgproc/imgproc.hpp> //opencv图像处理头文件
 using namespace cv;
 int main()
 {
     // 读入一张图片
     Mat img = imread("s.jpg");
     
     // 在窗口中显示猫¨
     imshow("CAT", img);
     Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
     Mat img2;
     erode(img, img2, element);
 ​
     imshow("[效果图]腐蚀操作", img2);
     // 等待n ms后窗口自动关闭
     waitKey(0);
     //n替换为阿拉伯数字
     return 0;
 }
  • 腐蚀:用图像中的暗色部分"腐蚀"掉图像中的高亮部分

1.1-3图像模糊

 #include <opencv2/highgui/highgui.hpp>
 #include<opencv2/imgproc/imgproc.hpp> //opencv图像处理头文件
 using namespace cv;
 int main()
 {
     // 读入一张图片
     Mat img = imread("s.jpg");
 ​
     // 在窗口中显示猫¨
     imshow("CAT", img);
     Mat img2;
     blur(img, img2, Size(7, 7));  //均值滤波函数用于模糊
 ​
     imshow("[效果图]模糊操作", img2);
     // 等待n ms后窗口自动关闭
     waitKey(0);
     //n替换为阿拉伯数字
     return 0;
 }
  • 主函数: blur函数

1.1-4 canny边缘检测

 #include<opencv2/opencv.hpp>
 #include<opencv2/imgproc/imgproc.hpp> //opencv图像处理头文件
 using namespace cv;
 int main()
 {
     Mat img = imread("s.jpg");
     imshow("CAT", img);
     Mat data1,img2,data2;  //参数定义
     data1.create(img.size(), img.type());  //建立与img同类型和大小的矩阵(dst)
     cvtColor(img, data2, COLOR_BGR2GRAY);//将原图像转为灰度图像
 ​
 ​
     blur(data2, img2, Size(3, 3));  //使用3*3来降噪
 ​
     Canny(img2, img2, 3, 9, 3); //运行Canny算子
 ​
     imshow("[效果图]边缘检测", img2);
     waitKey(0);
     return 0;
 }

纯手敲,整理不易,留个赞再走叭

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值