OpenCV 图象腐蚀形态学操作 全家桶
图象腐蚀与形态学操作 opencv
1. 通过调用库函数实现图像的腐蚀、膨胀;
2. 通过设置结构元素、元素大小、形态学操作类型实现对图象的形态学操作。
源码(VS2017+OpenCV 4.0)
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc/types_c.h>
using namespace std;
using namespace cv; //全局变量
Mat src, res;
int slider = ;//腐蚀膨胀滑杆
const int slider_max = ;
int operation = ;//形态学操作类型
const int operation_max = ;
int kenl = ;//内核类型
const int kenl_max = ;
int kenl_size = ;//内核大小
const int kenl_size_max = ; //回调函数
void on_trackbar(int pos, void*);
//腐蚀
void getErodeAndDilate(int level, int pattern); //腐蚀
void getErodeAndDilate(int level, int pattern)
{
//进行腐蚀/膨胀
if(pattern == )
erode(src, res, Mat(), Point(-, -), level);
else if(pattern == )
dilate(src, res, Mat(), Point(-, -), level); imshow("处理结果1", res);
} //回调函数:腐蚀
void on_trackbar1(int pos, void*)
{
getErodeAndDilate(pos, );
} //回调函数:膨胀
void on_trackbar2(int pos, void*)
{
getErodeAndDilate(pos, );
} //回调函数:形态学操作类型
void on_trackbar3(int pos, void*)
{
int op = pos + ;
//选择内核形状
Mat elemment = getStructuringElement(kenl, Size( * kenl_size + , * kenl_size + )); morphologyEx(src, res, op, elemment);
imshow("处理结果2", res);
} int main()
{
string file = "D:\\trashBox\\testIMG\\monkey.jpg";
src = imread(file);
if (!src.data)
{
cout << "图片读取失败." << endl;
return ;
}
namedWindow("处理结果1");
//创建选择腐蚀次数的 trackbar
createTrackbar("腐蚀级数", "处理结果1", &slider, slider_max, on_trackbar1);
//创建选择膨胀次数的 trackbar
createTrackbar("膨胀级数", "处理结果1", &slider, slider_max, on_trackbar2); namedWindow("处理结果2");
//创建选择具体操作的 trackbar
createTrackbar("形态学操作\n开运算-0\n闭运算-1\n梯度-2\nTopHat-3\nBlackHat-4", "处理结果2", &operation, operation_max, on_trackbar3);
//创建选择内核形状的 trackbar
createTrackbar("结构元素:\n 0: Rect - 1: Cross - 2: Ellipse", "处理结果2", &kenl, kenl_max, on_trackbar3);
//创建选择内核大小的 trackbar
createTrackbar("内核大小:\n 2n +1", "处理结果2", &kenl_size, kenl_size_max, on_trackbar3); waitKey();
return ;
}
效果图
1. 图像腐蚀、膨胀





2. 形态学操作


其他组合操作,自己去探索吧,挺有趣的!
更多opencv中文资料,参考这里哟!
OpenCV 图象腐蚀形态学操作 全家桶的更多相关文章
- OpenCV学习笔记(六) 滤波器 形态学操作(腐蚀、膨胀等)
转自:OpenCV 教程 另附:计算机视觉:算法与应用(2012),Learning OpenCV(2009) 平滑图像:滤波器 平滑 也称 模糊, 是一项简单且使用频率很高的图像处理方法.平滑处理的 ...
- OPENCV形态学操作1
形态学操作是指基于形状的一系列图像处理操作,包括膨胀,腐蚀,二值化,开运算,闭运算,顶帽算法,黑帽算法,形态学梯度等,最基本的形态学操作就是膨胀和腐蚀. 一.膨胀 首先需要明确一个概念,膨胀和腐蚀都是 ...
- opencv中的图像形态学——腐蚀膨胀
腐蚀膨胀是图像形态学比较常见的处理,腐蚀一般可以用来消除噪点,分割出独立的图像元素等. 一般腐蚀操作对二值图进行处理,腐蚀操作如下图,中心位置的像素点是否与周围领域的像素点颜色一样(即是否是白色点,即 ...
- 【图像处理】OpenCV+Python图像处理入门教程(七)图像形态学操作
图像形态学主要从图像内提取分量信息,该分量信息通常对表达图像的特征具有重要意义.例如,在车牌号码识别中,能够使用形态学计算其重要特征信息,在进行识别时,只需对这些特征信息运算即可.图像形态学在目标视觉 ...
- opencv学习笔记(五)----图像的形态学操作
图像的形态学操作有基本的腐蚀和膨胀操作和其余扩展形态学变换操作(高级操作)-----开运算,闭运算,礼帽(顶帽)操作,黑帽操作...(主要也是为了去噪声,改善图像) 形态学操作都是用于处理二值图像(其 ...
- IP 基础知识全家桶,45 张图一套带走
前言 前段时间,有读者希望我写一篇关于 IP 分类地址.子网划分等的文章,他反馈常常混淆,摸不着头脑. 那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个 IP 基础知识全家桶. ...
- opencv::形态学操作
形态学操作 开操作- open 闭操作- close 形态学梯度- Morphological Gradient 顶帽 – top hat 黑帽 – black hat 开操作- open 先腐蚀后膨 ...
- EOS基础全家桶(七)合约表操作
简介 本篇我们开始来为后续合约开发做准备了,先来说说EOS内置的系统合约的功能吧,本篇将侧重于合约表数据的查询,这将有利于我们理解EOS的功能,并可以进行必要的数据查询. EOS基础全家桶(七)合约表 ...
- EOS基础全家桶(十)交易Action操作
简介 区块链上的所有操作都是通过交易(Transaction)上链的,无论你是转账交易还是发起的智能合约的调用,而EOS和传统区块链不同的是EOS在一个交易里可以发起多个行为(Action),这使得E ...
随机推荐
- hue集成mysql找不到 libmysqlclient.so.16问题解决
首先我的配置文件如下,这个是没有问题的 但是在重启hue连接mysql时,却发生了如下问题: 这个错误的意思就是没有找到libmysqlclient_r.so.16这个文件,可能是我安装的mysql有 ...
- 123457123456#0#-----com.threeapp.renZheDadishu02-----忍者版打地鼠
com.threeapp.renZheDadishu02-----忍者版打地鼠
- WCAG
WCAG What is WCAG? Web Content Accessibility Guidelines (WCAG) Overview Checklist and solve technolo ...
- migrate设置
migrate配置 进入项目manage所在的目录中执行如下命令,否则会报错:no such table: django_session 进入cmd 输入盘符比如:E: 切换目录 cd E:\prog ...
- IE和火狐的css兼容性问题
CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点. 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-le ...
- .Net Core 3.0 关于Windows Form和WPF的全面支持
引言 ".NET 核心是开源和跨平台.您可以使用 .NET Core 在 Windows.Mac.十几个 Linux.iPhone.IoT 设备等上运行服务器应用程序! .NET 酷睿是开源 ...
- myeclipse安装activiti-designer
将压缩包中的features和plugins放到dropins下,然后重启myeclipse activiti-designer下载地址: 链接:https://pan.baidu.com/s/19u ...
- element-ui中的表格嵌套表格
element-ui中有详细的各种表格及表格方法.也有表格展开出现二级的样式,但是却没有表格嵌套二级表格的方案,于是就自己写了一个,样式图如下: 展开后如下 这就是一个普通的二级表格嵌套,用的是el- ...
- 【牛客网】Finding Hotel
[牛客网]Finding Hotel 忘记K远点对的剪枝的我有点自闭 事实上我们只要先建一棵KD树出来,维护一下所在的矩形,和子树里的最小值 每次查询的时候如果最小值比查询的值要大的话就退出 当前的答 ...
- In-App Purchase(iap)快速指南
点击IOS IAP APP内支付 Java服务端代码直接跳转到示例点击直接跳转到示例 iap简介 在应用中内嵌Store,在iOS应用中使用Store Kit framework来实现In-A ...