【C++】【图像处理】形态学处理(腐蚀、膨胀)算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)
1 void erosion(BYTE* image, int w, int h, BYTE* outImg)
2 {
3 int rept;
4 //腐蚀
5 memcpy(outImg, image, sizeof(BYTE) * w * h); //将读取的图像赋值给outImg,方便进行腐蚀操作
6
7 int i, j, m, n;
8 BYTE flag;
9 for (rept = 0;rept < 3;rept++) //进行三次 腐蚀 or 膨胀 操作
10 for (i = 1;i < h - 1;i++)
11 for (j = 1;j < w - 1;j++)
12 if (image[i * w + j] == 255) { //当前灰度级为255时(即白色),则对该点的3x3邻域像素点进行遍历
13 flag = 0;//记录该邻域中,当灰度级为0(即黑色),则自增
14 for (m = -1;m < 2;m++)
15 for (n = -1;n < 2;n++)
16 if (image[(i + m) * w + j + n] == 0) {
17 flag++;
18 break;
19 }
20 if (flag > 2)//当邻域中超过两个像素点的灰度级都是0时,则该点的灰度级也为0(至此达成消除噪点的操作)
21 outImg[i * w + j] = 0;
22 }
23 memcpy(image, outImg, sizeof(BYTE) * w * h);// 保存处理好的图像
24
25 }
1 void dilation(BYTE* image, int w, int h, BYTE* outImg)
2 {
3 int rept;
4 //膨胀
5 memcpy(outImg, image, sizeof(BYTE) * w * h); //将读取的图像赋值给outImg,方便进行膨胀操作
6
7 int i, j, m, n;
8 BYTE flag;
9 for (rept = 0;rept < 3;rept++)//进行三次膨胀操作
10 for (i = 1;i < h - 1;i++)
11 for (j = 1;j < w - 1;j++)
12 if (image[i * w + j] == 0) {//当前灰度级为0时(即黑色),则遍历该点的3x3邻域像素点
13 flag = 0;//纪录该邻域中,灰度级是255(即白色)的像素点个数
14 for (m = -1;m < 2;m++)
15 for (n = -1;n < 2;n++)
16 if (image[(i + m) * w + j + n] == 255) //
17 flag++;
18 if (flag > 1)//当邻域中超过一个像素点的灰度级是255时,则该点的灰度级也为255(至此达成增强细节,平滑处理的操作)
19 outImg[i * w + j] = 255;
20 }
21 memcpy(image, outImg, sizeof(BYTE) * w * h);
22 }
总结
针对处理二值图图像时,腐蚀或膨胀算法的核心:
1、确定该点(假设为A点)的灰度级,是0还是255;
2、遍历以该点为中心的3x3的邻域,获取灰度级等于0或者等于255的像素点个数,使用 flag 变量记录;
3、当 flag 大于设定的数值时,则A点的灰度级将被赋值为0或者255;
【C++】【图像处理】形态学处理(腐蚀、膨胀)算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)的更多相关文章
- 基于FPGA的腐蚀膨胀算法实现
本篇文章我要写的是基于的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,,腐蚀在二值图像的基础上做"收缩"或"细化"操作,膨胀在二值图像的基础上做" ...
- 基于MATLAB的腐蚀膨胀算法实现
本篇文章要分享的是基于MATLAB的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作. 什么是二值图像 ...
- 【zz】matlab 腐蚀膨胀算法
1.图像膨胀的Matlab实现: 可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象.结构元素对象可以是strel函数返回的对象,也可 ...
- OpenCV图像处理篇之腐蚀与膨胀
转载请注明出处:http://xiahouzuoxin.github.io/notes 腐蚀与膨胀 腐蚀和膨胀是图像的形态学处理中最主要的操作,之后遇见的开操作和闭操作都是腐蚀和膨胀操作的结合运算. ...
- OpenCV计算机视觉学习(5)——形态学处理(腐蚀膨胀,开闭运算,礼帽黑帽,边缘检测)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 形态 ...
- opencv中的图像形态学——腐蚀膨胀
腐蚀膨胀是图像形态学比较常见的处理,腐蚀一般可以用来消除噪点,分割出独立的图像元素等. 一般腐蚀操作对二值图进行处理,腐蚀操作如下图,中心位置的像素点是否与周围领域的像素点颜色一样(即是否是白色点,即 ...
- Win8Metro(C#)数字图像处理--2.22二值图像膨胀
原文:Win8Metro(C#)数字图像处理--2.22二值图像膨胀 [函数名称] 二值图像膨胀函数DilationProcess(WriteableBitmap src) [算法说明] 膨胀 ...
- Python 图像处理 OpenCV (9):图像处理形态学开运算、闭运算以及梯度运算
前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...
- Python 图像处理 OpenCV (10):图像处理形态学之顶帽运算与黑帽运算
前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...
- 地理围栏算法解析(Geo-fencing)
地理围栏算法解析 http://www.cnblogs.com/LBSer/p/4471742.html 地理围栏(Geo-fencing)是LBS的一种应用,就是用一个虚拟的栅栏围出一个虚拟地理边界 ...
随机推荐
- HTML一键打包APK工具 如何进行实名认证购买和激活
HTML一键打包APK工具 价格表 授权时长 价格 1小时 49 1天 99 1个月 199 1个季度 399 半年 599 1年 799 付费版功能 功能点 免费版 付费版 去除广告信息 × √ 去 ...
- ssh-keygen无回车生成公钥私钥对
ssh-keygen无回车生成公钥私钥对 ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q -t: -N:是指密码为空: -f:id_rsa是指保存文件为 ...
- ora2pg使用记录
ora2pg使用记录 前言 这篇文章是我在学习使用ora2pg过程中的学习记录,以便日后遗忘查阅: 诸君也可跟随我的步伐了解一下ora2pg,或可移步如下官方文档参考学习:Ora2Pg : Migra ...
- NFC and Contactless Technologies
NFC and Contactless Technologies NFC与无接触技术 NFC technology enables simple and safe two-way interactio ...
- 报Bug的礼仪
不要对1个程序员说:你的代码有Bug.他的第1反应是:1.你的环境有问题吧:2.傻逼你会用吗? 如果你委婉的说:你这个程序和预期的有点不1致,你看看是不是我的打开姿势有问题?他本能的会想:擦,是不是出 ...
- idea修改默认maven配置
idea修改默认maven配置 方法一 (不推荐) 打开project.default.xml文件,在其中加入如下几行配置. 代码如下 保存修改之后新建一个maven项目查看效果 方法二 新增Proj ...
- Python网页应用开发神器fac 0.2.10版本新功能介绍
fac项目地址:https://github.com/CNFeffery/feffery-antd-components 欢迎star支持 大家好我是费老师,由我开源维护的Python网页通用组件库f ...
- 简述location规则优先级-实现域名跳转-不同语言-终端跳转-错误页面返回首页-腾讯公益首页
1.简述location的常见规则优先级,并且逐个验证: = :精确匹配(必须全部相等) #精准匹配优先级最高 ~ :大小写敏感(正则表达式) #一般使用~*忽略大小写匹配 (正则表达式 有上下区分, ...
- 练习回—编译安装nginx
练习回 练习,编译安装nginx. 1.yum安装依赖环境 yum -y install pcre-devel zlib-devel gcc gcc-c++ make 2."下载" ...
- TS实现汉诺塔算法,以及图灵完备讨论
之前在网上看到徐大佬更新的一篇文章: 用 TypeScript 类型运算实现一个中国象棋程序 在线预览地址:https://tsplay.dev/Nd4n0N 把鼠标放在最后几行的走棋结果上,惊喜的一 ...