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;
}
纯手敲,整理不易,留个赞再走叭