【C++】【图像处理】形态学处理(腐蚀、膨胀)算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)

这篇具有很好参考价值的文章主要介绍了【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;文章来源地址https://www.toymoban.com/news/detail-746256.html

到了这里,关于【C++】【图像处理】形态学处理(腐蚀、膨胀)算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用opencv c++完成图像中水果分割(分水岭、形态学操作、通道处理)单独标记每个水果

    2023.4.16日更新 1. 利用一阶矩增加了草莓等水果的质心绘制。 2. 绘制出了生长方向。 原为本人机器人视觉作业。参考文章http://t.csdn.cn/eQ0qp(目测是上一届的学长) 要求:在网络上寻找水果重叠在一起的图片、经过一系列图像处理,完成每个水果的分割,并单独标记出来。 导

    2024年02月04日
    浏览(58)
  • 形态学运算与仿真:图像处理中形态学操作的简单解释

    形态学是图像处理领域的一个分支,主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变图像的形状等。其中形态学的核心操作是形态学运算。 形态学运算是一种基于形状的图像处理技术,它是通过结构元素与图像进行特定运算的方

    2024年02月04日
    浏览(47)
  • 第九章 形态学图像处理

    图像形态学也叫数学形态学,是指一系列处理图像 形状特征 的图像处理技术,是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论。其基本思想是利用一种特殊的 结构元 来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析

    2024年02月09日
    浏览(25)
  • 形态学图像处理和图像分割MATLAB实验

    一、实验目的 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。 掌握孤立点检测、线检测和边缘检测的方法。 掌握全局阈值处理的方法。 二、实验内容 1. 开运算和闭运算实验。 图1(a)显示了一幅被噪声图像污染的指纹图像,图1(b)给出了结构元,请自编程

    2024年02月06日
    浏览(37)
  • 《数字图像处理-OpenCV/Python》连载:形态学图像处理

    本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 形态学图像处理是基于形状的图像处理,基本思想是利用各种形状的结构元进行形态学运算,从图像中提取表达和描绘区域形状的结构信息。形态学运算的数学原

    2024年02月19日
    浏览(48)
  • 数字图像处理之matlab实验(五):形态学图像处理

    常见的形态学处理包括腐蚀、膨胀、开运算、闭运算。不同的操作有不同的作用,同样的操作在不同类型的图片上也有不同效果,具体效果如下表格所示。要求熟练掌握对二值图像的形态学处理。 不同操作对不同类型图像处理效果 一、对二值图像进行处理 1、结构元素 在开

    2024年02月04日
    浏览(47)
  • python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

    让有噪音点(图像上显得突兀的像素点)的图像变得更加自然顺眼 1.均值滤波 blur() 根据核的大小(rowcol),每个像素值就等于以此像素为中心的周围rowcol个像素的平均值。 核大一点,显然越平滑、模糊。 result = cv2.blur(img, (15, 15)) 2.方框滤波 boxFilter() normalize=true的时候,效果同

    2024年01月18日
    浏览(42)
  • 简要介绍 | 基于Python的图像形态学处理概述

    注1:本文系“简要介绍”系列之一,仅从概念上对基于Python的图像形态学处理进行非常简要的介绍,不适合用于深入和详细的了解。 Digital terrain models from airborne laser scanning for the automatic extraction of natural and anthropogenic linear structures In: Geomorphological Mapping: a professional handbook of

    2024年02月10日
    浏览(30)
  • 【计算机视觉】图像处理算法(形态学滤波篇)

    来源:《OpenCV3编程入门》,怀念毛星云大佬🕯️ 说明: 本系列重点关注各种图像处理算法的原理、作用和对比 数学形态学的概念: 数学形态学(Mathematical morphology)是立在格论和拓扑学基础之上的图像分析学科,足数学形态学阁像处现的基本理论。其基本的运算包括:二值腐

    2024年03月10日
    浏览(34)
  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包