灰度级形态学 - 顶帽变换和底帽变换

article/2024/12/25 10:26:53

目录

1. 介绍

2. 代码实现


1. 介绍

顶帽变换和底帽变换就是图像的加减和开闭运算的结合

顶帽变换的公式为:原图 - 原图的开运算

T_{hat}(f) = f - (f\circ b)

  •  这里结合开运算的几何图形解释来介绍顶帽变换。
  •  因为开运算是结构元从下往上推动的过程,所以会删除图像灰度值相对周围高的亮点,而其他的区域影响是不大的。那么原图 - 原图的开运算的话,就是保留灰度值较高的亮点,顶帽运算相当于把开运算删除的亮点补回来了。
  •  并且,可以发现,open运算的图像灰度值均 <= 原图,所以是原图 - open运算的图像

底帽变换的公式为:图像闭运算 - 原图

B_{hat}(f) = (f\bullet b) - b

  •  这里结合闭运算的几何图形解释来介绍底帽变换。
  •  因为闭运算是结构元从上往下推动的过程,所以会删除图像灰度值相对周围低的暗点,而其他的区域影响是不大的。那么原图的闭运算 - 原图的话,就是保留灰度值较低的暗点,底帽变换相当于把闭运算删除的暗点补回来了。
  •  并且,可以发现,close运算的图像灰度值均 >= 原图,所以是close运算的图像 - 原图

由此可以得出结论

顶帽变换(白顶帽变换):是保留图像中的相对周围灰度值较高的亮点,并且结构元的size越大,保留亮点的数目越多,因为相对周围灰度值较高的那个 ''相对的程度'' 被改变了(比如原来5相对1就是高,那么567往上都被保存。现在变成3相对1就是高,那么345往上都会被保留)

底帽变换(黑底帽变换):是保留图像中的相对周围灰度值较低的暗点,并且结构元的size越大,保留暗点的数目越多

2. 代码实现

变换的代码为:

import numpy as np
import cv2def noise(img):             # 添加椒盐噪声for i in range(2000):x = np.random.randint(0,img.shape[0])y = np.random.randint(0,img.shape[1])img[x][y] = np.random.randint(0,2) * 255    # 随机产生0 255 椒盐噪声return img.astype(np.uint8)img = cv2.imread('./flower.jpg',0)
img_noise = noise(img.copy())                 # 产生噪声图像kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))dst_tophat = cv2.morphologyEx(img_noise,cv2.MORPH_TOPHAT,kernel)      # 顶帽变换
dst_blackhat = cv2.morphologyEx(img_noise,cv2.MORPH_BLACKHAT,kernel)  # 底帽变换cv2.imshow('img',np.hstack((img,img_noise,dst_tophat,dst_blackhat)))  # show
cv2.waitKey()
cv2.destroyAllWindows()

图像处理的结果:

图像顺序:原图、加了椒盐噪声的图像、顶帽变换、底帽变换

可以发现,顶帽变换将噪声图像上面的salt噪声都保留了,而底帽变换将pepper噪声点都保留了

如果将代码里面的 kernel size 改成20的话,就会保留更多的亮暗点

 


http://chatgpt.dhexx.cn/article/wowHUnXP.shtml

相关文章

图像处理基础——灰度级形态学

文章目录 简介膨胀 腐蚀腐蚀膨胀 开运算 闭运算一些基本的灰度级形态学算法形态学平滑形态学梯度顶帽变换 底帽变换 灰度级形态学重建 简介 形态学只适用于Region操作 或者是二值化后的图片 需要延伸到灰度形态学才能广泛应用 拓展到灰度级形态学后 结构元的表达形式可以大致分…

灰度图像分辨率变换(灰度级)

目的&#xff1a;&#xff08;1&#xff09;对一帧8bits 128x128的灰度图像处理为1bits和3bits的128x128灰度图像。 &#xff08;2&#xff09;处理为8bits 64x64和32x32的灰度图像。 一、基本原理 一幅图像的x和y坐标及幅度可能都是连续的。为了把它转换为数字形式&#x…

matlab-图形采样及灰度级转换

目录 一、图像采样 1、实验内容 2、采样原理 3、实验程序 4&#xff0e;实验结果与分析 5&#xff0e;思考题 二、图像类型转换 1、实验内容 2&#xff0e;实验原理 3、程序 4&#xff0e;实验结果与分析 5. 思考题 一、图像采样 1、实验内容 试对任意一幅图像分…

灰度级形态学

灰度级形态学 灰度级形态学知识点&#xff1a;1、灰度化和二值化2、灰度图像是几通道图像3、灰度图和二值图的区别&#xff1a;4、像素点灰度形态学梯度 形态学只适用于区域操作 或者是二值化后的图片. 灰度级形态学知识点&#xff1a; 在图像处理中&#xff0c;用RGB三个分量&…

灰度、灰度级、分辨率、像素值相关概念

灰度、灰度级、分辨率、像素值&#xff1b; 2017年09月18日 20:01:04 以梦为马_不负韶华 阅读数&#xff1a;14346 版权声明&#xff1a;版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/Strive_0902/article/details/78023…

转换为不同灰度级图像

将256级灰度图像转换为64级灰度图像、32级灰度图像等。 matlab代码: I imread(cameraman.tif); [m,n]size(I); Jzeros(m,n); for i1:mfor j1:nJ(i,j)floor(I(i,j)/32);end end Kuint8(J); subplot(131) imshow(I);title(原图);colorbar subplot(132) imshow(K,[0,7]);title(…

OpenCV黑白图像增强——灰度级切片

前言 在OpenCV中&#xff0c;在Mat中&#xff0c;表达图像的值是0到255&#xff0c;0为黑色&#xff0c;255为白色&#xff0c;而已灰度级切片对灰度图像做二值映射讲处理&#xff0c;给一个阈值&#xff0c;按这个阈值去分层&#xff0c;大于这个阈的赋一个值&#xff0c;小于…

数字图像处理学习笔记(二):图像灰度级的增加、减少

实验截图&#xff1a; 图像灰度级阶梯 实验代码&#xff1a; img1 imread(erciyuan.jpg); img2 rgb2gray(img1); for i0:7 img (uint8(img2/(2^i)))*(2^i); %灰度级逐渐递减的过程 subplot(2,4,i1), imshow(img,[]); title( [ ,num2str(2^(8-i)),级灰度图像]); %设置…

灰度级形态学 - 灰度膨胀和灰度腐蚀

目录 1. 介绍 2. code 1. 介绍 灰度级形态学将形态学在二值图像的处理中扩展到灰度图像 灰度腐蚀&#xff1a;得到kernel 处理子区域的最小值 因此&#xff1a;灰度腐蚀后的图像整体偏暗&#xff0c;并且亮特征减少 灰度膨胀&#xff1a;得到kernel 处理子区域的最大值 同…

图像处理名词解释之灰度、灰度级、分辨率、像素值总结

​ 1、像素点 ​像素点是最小的图像单元&#xff0c;一张图片由好多的像素点组成。如下图 可以看到上述图片尺寸是500 * 338 的&#xff0c;表示图片是由一个500 * 338的像素点矩阵构成的&#xff0c;这张图片的宽度是500个像素点的长度&#xff0c;高度是338个像素点的长度&am…

不同灰度级的图像

学习DIP第0天 更多细节参考&#xff1a;http://face2ai.com/DIP-1-1-不同灰度级的图像/ 结论一&#xff1a;对于细节较多的图像&#xff0c;当图像大小&#xff08;N&#xff09;不变的情况下&#xff0c;灰度级别对于感官质量相对独立&#xff1b; 解释&#xff1a;如果图像…

【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】41. 图像的灰度变换&#xff08;灰度级分层&#xff09; 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 分段线性变换函数可以增强图像各部分的反差&#xff0c;增强感兴趣…

图像灰度级压缩

遥感图像灰度级压缩 在使用灰度共生矩阵计算图像纹理的时候,考虑到计算效率,需要对图像先进行灰度级压缩的操作,比较简单的方法是直接除以前后灰度级的倍数,结果发现这样处理效果不好,原因是影像的直方图分布可能极其不均匀,导致压缩后的图像像素值都集中在最小值周围。…

RGB图像之灰度级和通道的理解(矩阵含义等)

一言以敝之&#xff1a;图像有R&#xff0c;G&#xff0c;B三个二维矩阵&#xff0c;矩阵数值在0-255之间&#xff0c;数值大小表示允许通过色彩多少&#xff0c;也称为灰度值&#xff0c;灰度越大&#xff0c;相应色彩越深&#xff08;此处为光&#xff0c;故R&#xff0c;G&a…

灰度、灰度级、分辨率、像素值 概念解析

​1、像素点 像素点是最小的图像单元&#xff0c;一张图片由好多的像素点组成。如下图 可以看到上述图片尺寸是500 * 338 的&#xff0c;表示图片是由一个500 * 338的像素点矩阵构成的&#xff0c;这张图片的宽度是500个像素点的长度&#xff0c;高度是338个像素点的长度&#…

灰度、灰度级、分辨率、像素值;

​1、像素点 像素点是最小的图像单元&#xff0c;一张图片由好多的像素点组成。如下图 可以看到上述图片尺寸是500 * 338 的&#xff0c;表示图片是由一个500 * 338的像素点矩阵构成的&#xff0c;这张图片的宽度是500个像素点的长度&#xff0c;高度是338个像素点的长度&…

Excel为图表添加趋势线和公式

1.选中图表中的线或者散点。右键添加趋势线。 2.点击右边一栏。勾选公式就可以显示公式。

用Excel拟合imu温度趋势线

原始数据如下图&#xff0c;A&#xff1a;温度 B&#xff1a;ACC_X C&#xff1a;ACC_Y D:ACC_Z 选中AB列 然后出现如图 点击散点&#xff0c;右键选择添加趋势线 ok就可以拟合出线性公式

Excel-趋势线简介

文章目录 前言趋势线线性趋势线对数趋势线多项式趋势线乘幂趋势线指数趋势线移动平均趋势线 前言 趋势线用于以图形方式显示数据趋势和帮助分析预测问题。这种分析也称为回归分析。通过使用回归分析&#xff0c;可以扩展趋势线的图表预测未来值的实际数据。 趋势线 Excel中提供…

最小二值法线性回归 C语言实现方法(Excel中线性趋势线C语言实现算法)

直接给出最小二值法线性回归公式&#xff0c;忽略推导过程 ​​​​​​​2.给出代码 #include <ansi_c.h> #include<stdint.h> #include<stddef.h>//***********函数声明***************// uint8_t DPROC_LinearFitting(float *arrayX, float *arrayY, uint…