当前位置: 首页 > article >正文

零基础Opencv学习(一)

一、显示图片

#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:方框滤波

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

2:均值滤波

     /// 均值滤波
     cv::Mat blur;
     cv::blur(image, blur, cv::Size(5, 5));
     cv::imshow("blur", blur);

3:高斯滤波

     /// 高斯滤波
     cv::Mat GaussianBlur;
     cv::GaussianBlur(image, GaussianBlur, cv::Size(5, 5), 0, 0);
     cv::imshow("GaussianBlur", GaussianBlur);

4:中值滤波

       /// 中值滤波
     cv::Mat medianBlur;
     cv::medianBlur(image, medianBlur, 7);
     cv::imshow("medianBlur", medianBlur);

5:双边滤波

     /// 双边滤波
     cv::Mat bilateralFilter;
     cv::bilateralFilter(image, bilateralFilter, 25, 25*2, 25/2);
     cv::imshow("bilateralFilter", bilateralFilter);

三、膨胀与腐蚀

1:膨胀

    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:腐蚀

    cv::Mat erode;
    cv::Mat element = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(15, 15));
    cv::erode(image, erode, element);
    cv::imshow("erode", erode);

四、形态学梯度

    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);

五、漫水填充

    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);

六、图像金字塔

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

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


http://www.kler.cn/a/291391.html

相关文章:

  • Debezium-EmbeddedEngine
  • Java从入门到精通笔记篇(十三)
  • 【python】Bokeh 与 Plotly:创建交互式数据可视化工具
  • 自动化生成测试用例:利用OpenAI提升电商网站测试覆盖率
  • 3D Streaming 在线互动展示系统:NVIDIA RTX 4090 加速实时渲染行业数字化转型
  • urdf笔记
  • 【生日视频制作】白色小汽车悍马加长版车身AE模板修改文字软件生成器教程特效素材【AE模板】
  • 51单片机——存储器
  • SpringCloud - gateway 报错: type=Service Unavailable, status=503
  • vue3 行点击事件 table 树 点击行展开
  • ARM和RISC-V先进微架构设计
  • 优思学院|六西格玛,质量人不可错过的宝典,一篇文章让你读懂六西格玛!
  • Origin 2024下载安装教程(中文版软件包) 百度网盘分享链接地址
  • 基于物联网的低成本便携式传感器节点用于火灾和空气污染的检测与报警
  • 【数据库】MySQL-基础篇-SQL
  • 从零开始,认识游戏设计师(3)体验源于设计师①
  • 利用 Llama-Index为你的应用程序注入智能搜索
  • 软件工程知识点总结(2):需求分析(一)——用例建模
  • 全球化背景下的TikTok Live:精准定位、创意与网红营销
  • 【Qt笔记】QTreeWidget控件详解
  • Unity3D DOTS系列之Struct Change核心机制详解
  • asp.net Temporary ASP.NET Files修改为其他位置
  • 使用GitLab CI/CD实现使用Makeself生成.run文件
  • 设计模式之-开闭原则
  • Pytorch中向量和张量
  • Meta:大语言模型可以通过自我批判取得大幅提升!