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

opencv形态学-膨胀

opencv形态学-膨胀

膨胀就是取每一个位置结构元邻域内最大值作为该位置的输出灰度值;
膨胀是取邻域内最大值,那么显然膨胀后图像整体亮度会比原先要高,图像中亮的物体尺寸会变大,相反暗的尺寸会减小,甚至是消失
结构元有很多,一般采用矩形,圆
在这里插入图片描述

解析

下图左测是原始图片的灰阶,右边是经过3X3矩形腐蚀后的结果,我们拿19,44,99进行分析,对19所在位置进行腐蚀时,19就在3*3结构元中心,然后在这个结构元中取最大值代替19,于是取29,同理44 、 99所在位置一样。
在这里插入图片描述
全部膨胀后结果如下图
在这里插入图片描述

示例代码

通过打印每个像素点的灰度值更直观的来分析膨胀的过程:

#include<iostream>
#include<opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main()
{//创建一个10*10的空白图像Mat img = Mat::zeros(10  ,10 ,CV_8UC1);if(img.empty()){cout<<"open img false"<<endl;return -1;}namedWindow("1", WINDOW_NORMAL);cvResizeWindow("1", 500, 500);imshow("1" , img);//开始给img赋值for (int r = 0; r < img.rows; ++r){uchar* ptr = img.ptr<uchar>(r);for (int c = 0; c < img.cols; ++c){cout.width(5);ptr[c] = r*10+c;cout << (int)ptr[c] <<",";}cout << endl;}imshow("1" , img);//创建矩形结构元Mat s = cv::getStructuringElement(cv::MORPH_RECT , Size(3,3));Mat dst;dilate(img,dst,s);namedWindow("erode", WINDOW_NORMAL);cvResizeWindow("erode", 500, 500);imshow("erode" , dst);cout<<"------------------------------膨胀后--------------------------------"<<endl;for (int r = 0; r < img.rows; ++r){uchar* ptr = dst.ptr<uchar>(r);for (int c = 0; c < dst.cols; ++c){cout.width(5);cout << (int)ptr[c] << ",";}cout << endl;}waitKey();return 0;
}
http://www.lryc.cn/news/178253.html

相关文章:

  • 玄子Share 设计模式 GOF 全23种 + 七大设计原则
  • 单链表操作 C实现
  • WordPress主题网站首页添加好看的四格小工具教程
  • unittest自动化测试框架讲解以及实战
  • 数学建模之Matlab基础操作
  • 【Nuxt】04 Nuxt2-SEO: sitemap.xml、seo优化、robots.txt
  • VMware VSAN 入门
  • 【设计模式】备忘录模式
  • vue3+elementUiPlus表格导出功能
  • 专题五:优先级队列
  • 游戏设计模式专栏(一):工厂方法模式
  • element中使用el-steps 进度条效果demo(整理)
  • 038:mapboxGL 旋转地图(rotateTo)
  • java遇到的问题
  • LLM(二)| LIMA:在1k高质量数据上微调LLaMA1-65B,性能超越ChatGPT
  • Android AMS——创建Application(七)
  • html 边缘融合加载
  • ElasticSearch - 在 微服务项目 中基于 RabbitMQ 实现 ES 和 MySQL 数据异步同步(考点)
  • Springboot+vue的企业人事管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
  • 初识Java 11-1 函数式编程
  • 【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6HDP3.3.1问题总结
  • 李宏毅机器学习第一课(结尾附作业模型详细分析)
  • 对日项目工作总结
  • 设计模式探索:从理论到实践的编码示例 (软件设计师笔记)
  • 【内网穿透】在Ubuntu搭建Web小游戏网站,并将其发布到公网访问
  • 在cesuim上展示二维模型
  • c/c++中如何输入pi
  • python爬虫:JavaScript 混淆、逆向技术
  • Vue error:0308010C:digital envelope routines::unsupported
  • gitee 远程仓库操作基础(一)