python + opencv图像处理——其他形态学操作

钢材表面缺陷检测分类不同图像增强方式的对比研究 带钢表面缺陷检测分类不同图像增强方式的对比研究1、直接使用图像数据进行深度学习2、图像增强图像分析形态学top-hat变换图像锐化3、图像增强后的深度学习总结 基于钢材表面缺陷库进行多种缺陷检测分类实验,对比分析了使用卷积神经网络、Top-Hat变换、边缘检测等方式处理图像产生的结果和原因分析。在直接使用卷积神经网络分类的基础上,对图像进行不同方式的处理,重新评估在同样模型下,经过不同方式处理过的图像进行深度学习的效果。 对比图像处理方式:三种形态学Top-Hat变换(多尺度、等比例、自适应)、图像锐 阅读详情

顶帽、黑帽、形态学梯度

顶帽(tophat)

是 源图像与开操作之间的差值图像

黑帽(blackhat)

是闭操作图像与源图像的差值图像

形态学梯度(Gradient)

1、基本梯度:基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度有被称为基本梯度
2、内部梯度:是用源图像减去腐蚀之后的图像得到差值图像,称为图像的内部梯度
3、外部梯度:图像膨胀之后再减去原来的图像得到的差值图像,称为图像的外部梯度

from matplotlib import pyplot as plt 
from cv2 import cv2 as cv
import numpy as np 

#顶帽
def tophat_demo(image):
    gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    kernel = cv.getStructuringElement(cv.MORPH_RECT,(15,15))#获取结构元素
    dst = cv.morphologyEx(gray,cv.MORPH_TOPHAT,kernel)
    cimage = np.array(gray.shape,np.uint8)
    cimage = 100
    dst = cv.add(dst,cimage)#提升亮度
    cv.imshow("tophat_demo",dst)

#黑帽
def blackhat_demo(image):
    gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    kernel = cv.getStructuringElement(cv.MORPH_RECT,(15,15))#获取结构元素
    dst = cv.morphologyEx(gray,cv.MORPH_BLACKHAT,kernel)
    cimage = np.array(gray.shape,np.uint8)
    cimage = 100
    dst = cv.add(dst,cimage)#提升亮度
    cv.imshow("blackhat_demo",dst)

#二值图像
def hat_binary_demo(image):
    gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
    kernel = cv.getStructuringElement(cv.MORPH_RECT,(15,15))#获取结构元素
    dst = cv.morphologyEx(binary,cv.MORPH_BLACKHAT,kernel)#黑帽
    #dst = cv.morphologyEx(binary,cv.MORPH_TOPKHAT,kernel)#顶帽

    cv.imshow("hat_binary_demo",dst)

#图像梯度
def hat_gradient_demo(image):
    gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
    kernel = cv.getStructuringElement(cv.MORPH_RECT,(3,3))#获取结构元素
    dst = cv.morphologyEx(binary,cv.MORPH_GRADIENT,kernel)#梯度
    cv.imshow('hat_gradient_demo',dst)

#内外部梯度
def hat_inout_gradient_demo(image):
    kernel = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
    dn = cv.dilate(image,kernel)
    en = cv.erode(image,kernel)
    dst1  = cv.subtract(image,en)#internal gradient
    dst2 = cv.subtract(dn,image)#external gradient
    cv.imshow('internal gradient',dst1)
    cv.imshow('external gradient',dst2)

if __name__ == "__main__":
    filepath = "C:\\pictures\\others\\6.jpg"
    img = cv.imread(filepath)       # blue green red
    cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
    cv.imshow("input image",img)

    tophat_demo(img)
    blackhat_demo(img)
    hat_binary_demo(img)
    hat_gradient_demo(img)
    hat_inout_gradient_demo(img)

    cv.waitKey(0)
    cv.destroyAllWindows()

结果如下:
在这里插入图片描述

[Python图像处理] 四十三.Python图像形态学处理万字详解(腐蚀膨胀、开闭运算、梯度顶帽黑帽运算) 数学形态学是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:腐蚀和膨胀、开运算和闭运算、图像顶帽运算和图像底帽运算、骨架抽取、形态学梯度、Top-hat变换等。万字长文整理,希望对您有所帮助。该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 阅读详情

相关推荐

[Python从零到壹] 四十九.图像增强及运算篇之顶帽运算和底帽运算

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍。第二部分将讲解图像运算和图像增强,上一篇文章介绍介绍开运算、闭运算和梯度运算。这篇文章将继续介绍顶帽运算和底帽运算。数学形态学(Mathematical Morphology)是一种应用于图像处理和模式识别领域的新方法。数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具,其基本思想是用具有一定形态的结构元素去量度和提取图像中对应形状以达到对图像分析和识别的目的。希望文章对您有所帮助!.

杨秀璋的专栏 4557

9.4 Python图像处理之图像数学形态学-基于灰度形态学的应用(形态梯度、形态平滑、高帽变换、低帽变换)

9.4 Python图像处理之图像数学形态学-基于灰度形态学的应用(形态梯度、形态平滑、高帽变换、低帽变换) 文章目录9.4 Python图像处理之图像数学形态学-基于灰度形态学的应用(形态梯度、形态平滑、高帽变换、低帽变换)1 算法原理1.1 形态学梯度1.2 形态平滑1.3 高帽变换(顶帽)1.4 低帽运算(黑帽)2 代码3 效果 1 算法原理 1.1 形态学梯度 形态学梯度,膨胀图与腐蚀图之差,用于保留目标物体的边缘轮廓。形态学梯度操作能描述图像亮度变化的剧烈程度;当我们想要突出高亮区域的外围时,则可

集电极 5756

【图像处理】——Python OpenCV实现形态学膨胀、腐蚀开闭操作(可以用于图像滤波、图像分割等)

转载博客请注明详细地址,谢谢 本文讲了形态学基本操作膨胀腐蚀开闭操作的原理 本文讲解了用OpenCV-Python实现形态学操作

python_AI_fans的博客 2126

python 滤波_python数字图像处理(14):高级滤波

本文提供更多更强大的滤波方法,这些方法放在filters.rank子模块内。这些方法需要用户自己设定滤波器的形状和大小,因此需要导入morphology模块来设定。1、autolevel这个词在photoshop里面翻译成自动色阶,用局部直方图来对图片进行滤波分级。该滤波器局部地拉伸灰度像素值的直方图,以覆盖整个像素值范围。格式:skimage.filters.rank.autolevel(ima...

weixin_39603492的博客 323

数字图像处理-实验代码opencv+python.zip

数字图像处理 实验代码 python+opencv exp1图像的显示与存储,exp2基本几何变换,平移、旋转、缩放等,图像的傅里叶变换,exp3图像的对比度增强+直方图修正+平滑、锐化,exp4边缘检测

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

OpenCV图像处理应用(面向Python)之形态学操作

这里写自定义目录标题欢迎来到梁老湿课堂1.腐蚀2.膨胀3.通用形态学函数3.1开运算3.2闭运算3.3梯度运算3.4顶帽运算3.5黑帽运算3.6通用形态学函数总结4.核函数多练多学多坚持,我们下期再见。 欢迎来到梁老湿课堂 1.腐蚀 首先得先了解什么是形态学?形态学,即数学形态学(Mathematical Morphology),是图像处理过程中一个非常重要的研究方向。 目的: 提取图像分量信息最本质的形状特征。 重点: 腐蚀与膨胀。 难点: 梯度运算、形态学应用。 腐蚀: 1.将图像的边界点消除,使图像沿

weixin_52272597的博客 1486

Ansys Zemax | 利用OpticStudio实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证

本文详细介绍了如何利用Ansys Zemax的OpticStudio软件实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证。通过混合建模策略、相位面等效建模法、POP与FDTD联合验证等多种方法,帮助工程师快速解决跨尺度仿真难题,提升设计效率与精度。文章还分享了实战案例与高级技巧,适用于AR、医疗内窥镜等应用场景。

weixin_29268331的博客 501

OpenCV图像处理技术(Python)——形态学操作

文章目录前言学习内容1.腐蚀与膨胀2.通用形态学函数3.核函数总结 前言 随着时间的推移,学习OpenCV已经有一段时间了。今天就让我们来学习这之中的形态学操作吧。 学习内容 1.腐蚀与膨胀 1.1形态学—腐蚀操作 img = cv2.imread('j.bmp') cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() kernel = np.ones((3,3),np.uint8) erosion = cv2.erode(img

w11599的博客 224

机器人控制仿真软件:MATLAB Simulink Control System Toolbox_(1).MATLAB基础知识

MATLAB(Matrix Laboratory)是由MathWorks公司开发的一种高性能数值计算和可视化软件。它广泛应用于科学计算、工程设计、信号处理、控制系统设计、图像处理等领域。强大的矩阵运算能力:MATLAB的核心是矩阵运算,能够高效处理大规模的数值数据。丰富的工具箱:MATLAB提供了大量的工具箱,如Control System Toolbox、Simulink、Signal Processing Toolbox等,这些工具箱覆盖了多个应用领域。易于使用的图形界面。

kkchenjj的博客 907

2024年数字IC秋招-大疆-数字芯片开发工程师-笔试题

笔试题型:选择题 + 简答题笔试平台:大疆创新(电脑监控)笔试时间:90min做题感受:知识面覆盖很广,很多题目不会做(1) 什么是功耗优化中的DVFS技术?(2)降低功耗的原理是什么?(3)一般工作流程是怎样的?(4)必须的硬件模块有哪些?

qq_42135020的博客 2667

Python+OpenCV图像处理之其他形态学操作

顶帽(Top Hat): 原图像与开操作之间的差值图像,突出原图像中比周围亮的区域 黑帽(Black Hat): 闭操作图像与原图像的差值图像, 突出原图像中比周围暗的区域 形态学梯度(Gradient): 基础梯度:基础梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度有称为基本梯度。 内部梯度:是用原图像减去...

weixin_30377461的博客 240

华为od机试|华为od机试真题2025|华为od题库|华为od机考|2025C卷B卷

华为od机试|华为od机试真题2025|华为od题库|华为od机考|华为od机试|华为od机试真题2025|华为od题库|华为od机考|华为od机试|华为od机试真题2025|华为od题库|华为od机考|华为od机试|华为od机试真题2025|华为od题库|华为od机考|B卷C卷

u014481728的博客 10万+

【Python_Opencv图像处理框架】图像形态学操作

Opencv图形形态学:腐蚀与膨胀,礼帽与黑帽

m0_73222051的博客 889

优快云独家首发!万字长文,YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程!小白也能看懂!掌握了这个就掌握了魔改YOLO的核心!

🍀🍀🍀YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程,全网最强,学不会算我输!!!

Coding... 1万+

Far planner 部署真实小车 & 树莓派部署lego_loam

今天开一贴Far planner的部署,也算是lego loam的部署吧 因为state_estimation用的是lego loam小车底盘: 轮趣的mini差速底盘外加多一层钢板,中间层用来放velodyne的电池(小的电池还没到,大的电池塞不进去目前)和velodyne信号盒子。前面还可以加一个相机。底层用来放小车的电池和马达等设备了,底层不用动。最上面一层用来安装velodyne16线雷达,需要额外钻孔(如果买轮趣的话可以找老板钻个孔?我也不确定,我自己钻的)。 雷达固定螺丝用的是 1/4-20*3

博客 4303

Python+OpenCV图像处理(第4课---形态学操作)

图像腐蚀 erode() 主要针对二值图像,前景白色。 用卷积核扫描整张图像每个像素,如果卷积核覆盖区域都是白色点就保持白色,否则变成黑色。 # -*- coding: utf-8 -*- import cv2 import numpy as np img = cv2.imread("C:\\imgs\\erode.bmp", cv2.IMREAD_UNCHANGED) kernel = ...

ccnuacmhdu的博客 339

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OpenCV图像处理——形态学操作原理与代码实现(C++/Python)

形态学操作(Morphological Operations)是图像处理中的一类重要操作,主要用于处理图像的形状特征,尤其是二值图像中的边界、连通区域、空洞、噪声等结构。形态学操作基于结构元素对图像进行操作,通常用于预处理和后处理,如去噪、提取边缘、分割物体等。

小拉拉的博客 2495

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

OpenCV、Python 图像处理六 图像形态学操作

核能够自定义生成,也可以使用函数cv2.getStructuringElement()构造不同结构的核,该核函数的shape参数有多种,能够生成不同的核,但相比于自定义核就稍有局限,所以本章内容全部默认基于自定义核,当然朋友们也可以尝试使用cv2.getStructuringElement()核函数来构造特定结构的核。形态学操作主要包括:腐蚀、膨胀、开运算、闭运算、形态学梯度运算、顶帽运算(礼帽运算)、黑帽运算等操作。左图是原始图像,右图是腐蚀图像。形态学梯度运算是用图像的膨胀图像减去腐蚀图像的操作。

m0_73482095的博客 381

五、opencv-python图像处理高级操作(2)——形态学操作

这一章节详细的讲解了图像处理的形态学操作。

weixin_44463519的博客 1138

python-opencv【图像处理-形态学操作】

python-opencv[图像处理-形态学]

weixin_47114503的博客 260

pythonopencv图像形态_Python+OpenCV图像处理之其他形态学操作

顶帽(Top Hat):原图像与开操作之间的差值图像,突出原图像中比周围亮的区域黑帽(Black Hat):闭操作图像与原图像的差值图像, 突出原图像中比周围暗的区域形态学梯度(Gradient):基础梯度:基础梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度有称为基本梯度。内部梯度:是用原图像减去腐蚀之后的图像得到差值图...

weixin_39612023的博客 115

图像处理之形态学操作汇总(opencv-python实现)

目录 形态学基础操作 灰度图像膨胀 灰度图像腐蚀 二值图像膨胀 二值图像腐蚀 膨胀腐蚀的opencv实现 膨胀腐蚀的组合 开运算 闭运算 顶帽变换 底帽变换 击中击不中 形态学梯度 形态学基础操作 一个例子可以胜过很多定义,所以我们直接上例子。 灰度图像膨胀 源图像:209125191916824615814 23220510111342141122136 333716898...

手口一斤 506

OpenCV-Python图像处理学习笔记(四)——形态学操作、图像梯度

形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算,闭运算,梯度等。 1 形态学操作 形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算,闭运算,梯度等。就像土壤侵蚀一样,这个操作会

weixin_57726558的博客 783
上一篇: python + opencv图像处理——开闭操作
下一篇: python + opencv图像处理——分水岭算法
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值