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

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

​
#include
 #include 
 #include 
 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
 #include 
 #include 
 #include //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 
 #include //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
 #include //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;
 }

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

你可能感兴趣的:(opencv,opencv,图像处理,计算机视觉)