零基础Opencv学习(一)

一、显示图片

cpp 复制代码
#include "opencv2/opencv.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

    cv::Mat image = cv::imread("E:/OpencvStudyTest/1.png", cv::ImreadModes::IMREAD_COLOR);
    cv::imshow("image", image);

二、滤波

1:方框滤波

cpp 复制代码
     /// 方框滤波
     cv::Mat out;
     cv::boxFilter(image, out, -1, cv::Size(5, 5));
     cv::imshow("boxFilter", out);

2:均值滤波

cpp 复制代码
     /// 均值滤波
     cv::Mat blur;
     cv::blur(image, blur, cv::Size(5, 5));
     cv::imshow("blur", blur);

3:高斯滤波

cpp 复制代码
     /// 高斯滤波
     cv::Mat GaussianBlur;
     cv::GaussianBlur(image, GaussianBlur, cv::Size(5, 5), 0, 0);
     cv::imshow("GaussianBlur", GaussianBlur);

4:中值滤波

cpp 复制代码
       /// 中值滤波
     cv::Mat medianBlur;
     cv::medianBlur(image, medianBlur, 7);
     cv::imshow("medianBlur", medianBlur);

5:双边滤波

cpp 复制代码
     /// 双边滤波
     cv::Mat bilateralFilter;
     cv::bilateralFilter(image, bilateralFilter, 25, 25*2, 25/2);
     cv::imshow("bilateralFilter", bilateralFilter);

三、膨胀与腐蚀

1:膨胀

cpp 复制代码
    cv::Mat dilate;
    cv::Mat element = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(15, 15));
    cv::dilate(image, dilate, element);
    cv::imshow("dilate", dilate);

2:腐蚀

cpp 复制代码
    cv::Mat erode;
    cv::Mat element = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(15, 15));
    cv::erode(image, erode, element);
    cv::imshow("erode", erode);

四、形态学梯度

cpp 复制代码
    cv::Mat morphologyEx;
    cv::Mat element = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(2, 2));
    cv::morphologyEx(image, morphologyEx, cv::MORPH_GRADIENT, element);
    cv::imshow("fushi11", morphologyEx);

五、漫水填充

cpp 复制代码
    cv::Rect ccomp;
    cv::floodFill(image, cv::Point(50, 300), cv::Scalar(155, 255, 255), &ccomp, cv::Scalar(20,20,20), cv::Scalar(20,20,20));
    cv::imshow("floodFill", image);

六、图像金字塔

cpp 复制代码
    cv::Mat dstImage;
    cv::pyrUp(image, dstImage, cv::Size(image.cols*2, image.rows*2));
    cv::imshow("pyrUp", dstImage);
cpp 复制代码
    cv::Mat dstImage1;
    cv::pyrDown(image, dstImage1, cv::Size(image.cols/2, image.rows/2));
    cv::imshow("pyrDown", dstImage1);

好了,下一章再学习下图像变换!!!

相关推荐
reddingtons36 分钟前
Adobe Firefly AI驱动设计:实用技巧与创新思维路径
大数据·人工智能·adobe·illustrator·photoshop·premiere·indesign
CertiK38 分钟前
IBW 2025: CertiK首席商务官出席,探讨AI与Web3融合带来的安全挑战
人工智能·安全·web3
Deepoch2 小时前
Deepoc 大模型在无人机行业应用效果的方法
人工智能·科技·ai·语言模型·无人机
Deepoch2 小时前
Deepoc 大模型:无人机行业的智能变革引擎
人工智能·科技·算法·ai·动态规划·无人机
kngines2 小时前
【字节跳动】数据挖掘面试题0003:有一个文件,每一行是一个数字,如何用 MapReduce 进行排序和求每个用户每个页面停留时间
人工智能·数据挖掘·mapreduce·面试题
Binary_ey2 小时前
AR衍射光波导设计遇瓶颈,OAS 光学软件来破局
人工智能·软件需求·光学软件·光波导
昵称是6硬币2 小时前
YOLOv11: AN OVERVIEW OF THE KEY ARCHITECTURAL ENHANCEMENTS目标检测论文精读(逐段解析)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
平和男人杨争争3 小时前
机器学习2——贝叶斯理论下
人工智能·机器学习
静心问道3 小时前
XLSR-Wav2Vec2:用于语音识别的无监督跨语言表示学习
人工智能·学习·语音识别
算家计算3 小时前
5 秒预览物理世界,2 行代码启动生成——ComfyUI-Cosmos-Predict2 本地部署教程,重塑机器人训练范式!
人工智能·开源