OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍

数字图像处理(十)腐蚀和膨胀 数字图像处理,腐蚀和膨胀 阅读详情
AI摘要

本文详细介绍了图像腐蚀和膨胀的原理及OpenCV中相关函数的应用。通过具体案例解析了腐蚀膨胀对图像矩阵的影响,并提供了实用代码。

☞ ░ 前往老猿Python博客 https://blog.youkuaiyun.com/LaoYuanPython ░

在这里插入图片描述

一、引言

关于图像的腐蚀和膨胀,网上介绍的资料非常多,老猿也看了很多,总体来说主要偏向于就使用OpenCV腐蚀和膨胀函数的应用,另外原理介绍的有一小部分,对于初学者有很多的帮助,但如果想知其所以然则总体来说是不够的。

从《OpenCV-Python常用图像运算:加减乘除幂开方对数及位运算:https://blog.youkuaiyun.com/LaoYuanPython/article/details/108879397》这篇博文发布到现在,老猿花了较多的时间针对腐蚀和膨胀的原理以及一些比较偏门的问题进行了比较深入的研究,这半个月每晚都花近三个小时在与此相关的研究上。研究期间查阅了大量资料、做了大量测试,还咨询了一个做这方面的老同学,到今天基本上自认为弄清楚了,因此准备就这个方面写3-5篇与网上已有资料有些差异的博文,通过不同角度来阐述相关内容,希望于对这方面细节感兴趣的同仁有所裨益。

本文是老猿关于图像腐蚀与膨胀系列博文之一,该系列包括如下博文:

  1. OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍:https://blog.youkuaiyun.com/LaoYuanPython/article/details/109441709
  2. OpenCV-Python腐蚀膨胀函数erode、dilate使用详解:https://blog.youkuaiyun.com/LaoYuanPython/article/details/109477130
  3. OpenCV-Python图像矩阵不扩充边界腐蚀膨胀函数处理算法探究:https://blog.youkuaiyun.com/LaoYuanPython/article/details/109283825
  4. OpenCV图像腐蚀膨胀算法的Python模拟实现:
    https://blog.youkuaiyun.com/LaoYuanPython/article/details/109407091

本文作为老猿介绍图像腐蚀和膨胀处理的首篇文章,主要介绍腐蚀和膨胀的基础概念、腐蚀和膨胀的基本运算过程、OpenCV腐蚀和膨胀函数erode、dilate语法以及简单应用,并提供了老猿觉得有参考价值的一些博文参考。
在这里插入图片描述

二、基础概念

图像的膨胀(Dilation)和腐蚀(Erosion)是两种基本的形态学运算,主要用来寻找图像中的极大区域和极小区域。其中膨胀类似于“领域扩张”,将图像中的高亮区域或白色部分进行扩张,其运行结果图比原图的高亮区域更大;腐蚀类似于“领域被蚕食”,将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮区域更小。

具体处理时,腐蚀和膨胀都类似于在在《数字图像处理:理解什么是卷积(滤波)、卷积核以及相关参考资料(博文地址:https://blog.youkuaiyun.com/LaoYuanPython/article/details/108841819))》介绍的卷积处理。

卷积处理是针对图像对应的矩阵使用一个参考矩阵(卷积核)在图像矩阵中从左到右、从上到下的进行移动,移动到指定位置时,卷积核矩阵与图像矩阵重合范围内的对应元素相乘后得到积矩阵,卷积就是将积矩阵各元素和相加得到的值作为结果图像矩阵锚点对应位置元素的值。

腐蚀则是将对应核矩阵元素不为0位置的图像矩阵中所有元素的最小值作为结果图像矩阵锚点位置的对应元素值,膨胀则是将对应核矩阵元素不为0位置的图像矩阵中所有元素的最大值作为结果图像矩阵锚点位置的对应元素值。
在这里插入图片描述

三、OpenCV函数

3.1、腐蚀和膨胀函数
erode(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)#腐蚀函数

dilate(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)#膨胀函数
3.2、函数语法说明

腐蚀和膨胀函数的参数相同,返回值都是结果矩阵,相关参数含义如下:

  • src:需要腐蚀和膨胀的图像源矩阵
  • kernel:核矩阵
  • dst:返回结果矩阵,如果传值,可以不用将返回值赋值给单独的结果变量,直接使用dst即可,但dst必须先定义,老猿不推荐传该参数,因为使用没有直接返回结果赋值给结果变量方便
  • anchor:核矩阵锚点,不传值或传值为(-1,-1)则取核矩阵的中心位置作为锚点
  • iterations:迭代次数,每多迭代一次相当于以该值为1返回的结果作为src、以iterations为1、其他参数保持不变再次调用腐蚀或膨胀函数一次
  • borderType:扩充边界的模式,缺省值None表示不进行边界扩充
  • borderValue:当borderType=cv2.BORDER_CONSTANT时,扩充边界的元素以borderValue填充
3.3、关于kernel核矩阵

kernel核矩阵可以通过getStructuringElement函数构建,也可以自己单独构建。通过getStructuringElement构建时,可以传入两个参数,对应语法如下:
getStructuringElement(shape, ksize, anchor=None)

  • 参数shape表示核的形状,有如下三个取值:
  1. cv2.MORPH_RECT:长方形或正方形矩阵,矩阵中每个元素都为1。如图为一个5*5的正方形矩阵:
    在这里插入图片描述

  2. cv2.MORPH_CROSS:内置十字形矩阵,矩阵中和锚点同一列或同一行的每个元素都为1,其他元素都为0。下图为一个锚点为(2,3)的5*5内置十字形矩阵:
    在这里插入图片描述

  3. cv2.MORPH_ELLIPSE:内接椭圆形矩阵,矩阵中为1的元素构成一个椭圆,为该矩阵对应长方形的内接椭圆。下图为一个5*5内接椭圆矩阵:
    在这里插入图片描述

  • 参数ksize:矩阵的大小,表示宽和高的二元组,(3,3)表示3行3列矩阵,(6,4)表示4行6列的核矩阵

  • anchor:矩阵锚点,当shape为MORPH_CROSS时需要使用锚点的坐标

  • 返回值:构造的矩阵

3.4、关于borderType

在此直接以官网的表格来说明bordType取值的含义:
在这里插入图片描述
由于borderType不只是腐蚀和膨胀函数使用,在其他函数中也会使用,所以上述列表中的值并不能都在腐蚀和膨胀函数中使用:

  1. cv2.BORDER_WRAP:不能在腐蚀和膨胀函数中使用,官方文档有明确说明
  2. cv2.BORDER_TRANSPARENT:该值官网上没有说明,但老猿测试时发现报错:cv2.error: OpenCV(4.3.0) C:\projects\opencv-python\opencv\modules\core\src\copy.cpp:1179: error: (-5:Bad argument) Unknown/unsupported border type in function 'cv::borderInterpolate',老猿没有找到c++源代码进行核实,但测试来看应该也是不支持的。

另外缺省值为None时,老猿进行验证发现与cv2.BORDER_ISOLATED 值含义值相同,与列表中的说明可以相互印证。
在这里插入图片描述

四、腐蚀和膨胀对矩阵的影响图解

在《数字图像处理:理解什么是卷积(滤波)、卷积核以及相关参考资料》介绍了卷积核对图像处理过程,腐蚀和膨胀时核矩阵在图像矩阵中的移动过程与卷积是一样的,在此不重复介绍。下面通过案例来介绍腐蚀和膨胀结果矩阵的图像元素的生成过程。

4.1、案例1
图像源矩阵和核矩阵

在这里插入图片描述

锚点为红色标记的缺省中心位置,则针对源矩阵的S11和S88两个位置腐蚀和膨胀计算过程如下:

  1. 以核矩阵锚点位置与S11、S88对齐,形成核矩阵和源矩阵的重叠,对源矩阵来说,重叠区域请见上面两个颜色标记区域,其中深蓝色标记位置为核矩阵锚点对齐位置

  2. 由于核矩阵全为1,则腐蚀后结果矩阵ED的两个对应位置元素值为:
    ED11 = min(S00,S01,S02,S01,S11,S12,S20,S21,S22) = 0
    ED88 = min(S77,S78,S79,S87,S88,S89,S97,S98,S99) = 49

  3. 膨胀后结果矩阵DD的两个对应位置元素值为:
    DD11 = max(S00,S01,S02,S01,S11,S12,S20,S21,S22) = 4
    DD88 = max(S77,S78,S79,S87,S88,S89,S97,S98,S99) = 81

完整腐蚀和膨胀后的结果矩阵

在这里插入图片描述

上述案例的实现代码如下:
    import cv2,sys
    import numpy as np
    img = np.zeros((10, 10),np.uint8)
    for row in range(10):
        for col in range(10):
            img[row,col] = row*col


    kernalInt = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
    imgErode = cv2.erode(img, kernalInt, borderType=cv2.BORDER_CONSTANT, borderValue=0)
    imgDilate = cv2.dilate(img, kernalInt, borderType=cv2.BORDER_CONSTANT, borderValue=0)
4.2、案例2
图像源矩阵和核矩阵

本案例和案例1的区别主要体现在两方面:

  1. 核矩阵非全0,锚点非中心位置,核矩阵锚点元素值为0
  2. 由于锚点位置的变化,导致计算S88的腐蚀和膨胀值时核矩阵覆盖范围超出了源矩阵

图像源矩阵案例1相同,核矩阵调整为了十字形,锚点为(0,0),还是以源矩阵的S11和S88为例,由于核的锚点与S88对齐时,核矩阵范围超出了源矩阵范围,在此采用扩充边界模式(扩充边界值固定为0),此时两个位置与核矩阵的重叠范围为下图浅蓝色标记区域:
在这里插入图片描述
针对源矩阵的S11和S88两个位置腐蚀和膨胀计算过程如下:

  1. 以核矩阵锚点位置与S11、S88对齐,形成核矩阵和源矩阵的重叠,对源矩阵来说,重叠区域请见上面两个颜色标记区域,其中深蓝色标记位置为核矩阵锚点对齐位置

  2. 取重叠区域核矩阵为1的源矩阵元素的最小值,则腐蚀后结果矩阵ED的两个对应位置元素值为:
    ED11 = min(S12,S22,S32,S21,S23) = 2
    ED88 = min(S89,S99,Sa9,S98,S9a) = 0

  3. 膨胀后结果矩阵DD的两个对应位置元素值为:
    DD11 = max(S12,S22,S32,S21,S23) = 6
    DD88 = max(S89,S99,Sa9,S98,S9a) = 81

完整腐蚀和膨胀后的结果矩阵

在这里插入图片描述

上述案例的实现代码如下:
    img = np.zeros((10, 10),np.uint8)
    for row in range(10):
        for col in range(10):
            img[row,col] = row*col

   
    kernalInt = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3))

    imgErode = cv2.erode(img, kernalInt, anchor=(0,0),borderType=cv2.BORDER_CONSTANT, borderValue=0)
    imgDilate = cv2.dilate(img, kernalInt, anchor=(0,0), borderType=cv2.BORDER_CONSTANT, borderValue=0)

五、形态变换博文传送门

下面是老猿博文中与形态变换相关的博文列表:

  1. https://blog.youkuaiyun.com/LaoYuanPython/article/details/109441709 OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍
  2. https://blog.youkuaiyun.com/LaoYuanPython/article/details/109984045 OpenCV-Python图像运算变换处理:开运算和闭运算以及不同核矩阵的影响分析
  3. https://blog.youkuaiyun.com/LaoYuanPython/article/details/109556425 OpenCV-Python图像形态变换概述及morphologyEx函数介绍
  4. https://blog.youkuaiyun.com/LaoYuanPython/article/details/109768675 OpenCV-Python图像运算变换处理:形态学梯度运算及分类
  5. https://blog.youkuaiyun.com/LaoYuanPython/article/details/110195287 OpenCV-Python中预览超大图的程序实现方法
  6. https://blog.youkuaiyun.com/LaoYuanPython/article/details/110223709 OpenCV-Python图形图像处理:利用TopHat顶帽获取背景色中的噪点
  7. https://blog.youkuaiyun.com/LaoYuanPython/article/details/110294445 OpenCV-Python图形图像处理:利用黑帽去除图像浅色水印
  8. https://blog.youkuaiyun.com/LaoYuanPython/article/details/110676764 OpenCV-Python击中击不中HITMISS形态变换详解

附:一些参考资料

写作不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

小技巧: 可以通过点击博文下面的一键三连按钮实现对相关文章的点赞、收藏和对博客的关注,谢谢!

更多OpenCV-Python的介绍请参考专栏《OpenCV-Python图形图像处理 》
专栏网址:https://blog.youkuaiyun.com/laoyuanpython/category_9979286.html

关于老猿的付费专栏

老猿的付费专栏《使用PyQt开发图形界面Python应用 》(https://blog.youkuaiyun.com/laoyuanpython/category_9607725.html)专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》 (https://blog.youkuaiyun.com/laoyuanpython/category_10232926.html)详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏都适合有一定Python基础但无相关知识的小白读者学习。

付费专栏文章目录:《moviepy音视频开发专栏文章目录》(https://blog.youkuaiyun.com/LaoYuanPython/article/details/107574583)、《使用PyQt开发图形界面Python应用专栏目录 》(https://blog.youkuaiyun.com/LaoYuanPython/article/details/107580932)。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》(https://blog.youkuaiyun.com/laoyuanpython/category_9831699.html)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

跟老猿学Python、学OpenCV!

☞ ░ 前往老猿Python博文目录 https://blog.youkuaiyun.com/LaoYuanPython ░
opencv 核 腐蚀_学习 opencv---(9)形态学图像处理(一):膨胀和腐蚀 本篇文章中,我们一起探究了图像处理中,最基本的形态学运算——膨胀与腐蚀。浅墨在文章开头友情提醒,用人物照片做腐蚀和膨胀的素材图片得到的效果会比较惊悚,毁三观的,不建议尝试。。。。。。。。。。一、理论与概念讲解——从现象到本质1.1形态学概述形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构,而我们图像处理中指的形态学,往往表示的是数学形态学,下面一起来了... 阅读详情

相关推荐

OPenCV膨胀函数dilate()的使用

OPenCV版本:4.4 IDE:VS2007 功能描述 简述:使用一个指定的核元素去膨胀一个图像,图像膨胀的过程类似于一个卷积的过程,源图像矩阵A以及结构元素B,B在A矩阵上依次移动,每个位置上B所覆盖元素的最大值替换B的中心位置值(即锚点处),完成整个膨胀的过程。 函数使用一个指定的核元素去膨胀源图像,内核有一个可定义的 锚点,我们叫他内核中心点,膨胀操作时,获取内核覆盖区域最大像素值,并代替锚点的像素,最大值通过以下公式获取: dst(x,y)=max⁡(x′,y′): element(x′,y′.

jndingxin的专栏 2万+

Opencv学习笔记(六)图像形态学处理

文章目录形态学变换主要操作代码参考 形态学变换 形态学处理主要应用于二值图像,目的是微调分割区域的形状,获得比较理想的目标图像。腐蚀和膨胀是形态学处理的基础操作,其他操作包括:开运算、闭运算、顶帽,黑帽。 主要操作 腐蚀:把前景物体的边界向内缩小。 cv2.erode():第一个参数为图像;第二个是结构元;第三个参数为锚点,默认为结构元的中心点;第四个参数为迭代次数。 膨胀:把前景物体的边界向外扩张。 cv2.dilate():第一个参数为图像;第二个是结构元;第三个参数为锚点,默认为结构元的中心点;第四个

weixin_43170082的博客 1172

Python-Opencv中的膨胀和腐蚀

Python-Opencv中的膨胀和腐蚀 腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。 膨胀就是图像中的高亮部分进行膨胀,“邻域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中高亮部分被腐蚀,“邻域被蚕食”,效果图拥有比原图更小的高亮区域。 1.膨胀 膨胀过程是有一个结构元素或者模板去在原图像素比对,当比对过程中,中心像素位置的值根据其八邻域取或运算,或运算为1就取自己的中心值,...

qq_44262417的博客 1万+

OpenCV腐蚀函数:cv2.erode()使用

注意:cv2.erode()函数默认白色为前景目标,黑色为背景,所有腐蚀操作对象都是对白色部分操作的,即腐蚀会使白色目标区域变小。上面实例中,白色为较多点,黑色部分是裂缝区域,腐蚀的对象为白色背景区域,所以会减小白色区域,增大了黑色区域。kernel=np.array([[1, 1, 1, 1]], dtype=np.uint8)) ,两个[][]的是1*4的行向量,腐蚀后图像细节会呈现横条状。侵蚀可以应用几次(迭代)。kernel=(1,1,1,1)是一个4*1列向量,腐蚀后图像细节会呈现竖条状。

syluxhch的博客 9347

【Python】【Opencv】形态学操作cv2.morphologyEx()函数详解和示例,实现腐蚀、膨胀、闭和开等运算

常用的形态学操作如腐蚀、膨胀、开运算、闭运算等,可以帮助我们解决一下图像不连接或消除图像中某些不想要的连接,对于图像处理使用方便,效果明显。本文通过示例对这些功能和效果进行演示,以帮助大家理解和使用。

不定时分享,互相学习,共同进步 8544

opencv-python常用函数解析及参数介绍(五)——腐蚀与膨胀

有些时候图片上会有一些划痕或者污渍,会影响图片的质量,假设我有一张写有“艾醒”的图片,但是有花花绿绿的划痕和污渍,这时我们就可以运用腐蚀与膨胀消除这些划痕和污渍。

艾醒的博客 4187

OpenCV-Python腐蚀膨胀函数erode、dilate使用详解

本文详细测试验证了OpenCV的腐蚀和膨胀erode、dilate函数在进行图像腐蚀和膨胀处理的一些细节,包括核矩阵的形状、核元素取值类型及值对腐蚀和膨胀的影响、图像矩阵是否支持彩色图片、bordType缺省值对应的边界类型分析以及迭代次数的作用,有助于大家深入理解OpenCV的腐蚀和膨胀erode、dilate函数的使用。

老猿Python 1万+

YOLOv5轻量化实战:从Ghost模块到工业级部署的完整指南

本文详细介绍了YOLOv5轻量化实战,重点解析了Ghost模块在工业检测中的应用及其优化策略。通过Ghost卷积技术,模型参数量和GFLOPs显著降低,同时保持高精度,适用于实时性要求严格的工业场景。文章还提供了从模型优化到TensorRT加速的完整部署指南,助力开发者实现高效工业级应用。

weixin_28223453的博客 487

OpenCV-Python教程:形态学变换~腐蚀和膨胀(erode,dilate)

原文链接:http://www.juzicode.com/opencv-python-erode-dilate 返回Opencv-Python教程 形态学变换是基于图像形状的变换过程,通常用来处理二值图像,当然也可以用在灰度图上。OpenCV中的形态学变换同平滑处理一样也是基于一种“滑动窗口”的操作,不过在形态学变换中“滑动窗口”有一个更专业的名词:“结构元”,也可以像平滑处理那样称呼为kernel,结构元的形状有方形、十字形、椭圆形等,其形状决定了形态学变换的特点。形态学变换主要有腐蚀、膨胀、开操作、

桔子code 的博客 7671

海思MPP平台千兆以太网驱动集成与测试指南

千兆以太网(GE)是嵌入式视觉系统中音视频流传输与边缘控制的核心物理接口,其底层驱动需兼顾DMA高效调度、中断实时响应与PHY链路稳定性。在Linux嵌入式环境中,GE驱动通常基于net_device框架实现,并深度耦合于SoC专用媒体处理平台(如海思MPP),通过硬件抽象层(HAL)屏蔽寄存器操作,提供零拷贝、RGMII时序适配、描述符环管理等关键能力。技术价值体现在降低CPU负载、保障1080p@30fps实时推流、支持ONVIF/RTSP协议交互及固件远程升级。典型应用场景包括网络摄像机(IPC)、A

weixin_42599908的博客 89

数字IC后端手把手实战教程 | Innovus verify_drc VIA1 DRC Violation解析及脚本自动化修复方案

数字IC后端实战项目案例之Innovus verify_drc DRC Violation脚本自动化修复方案

weixin_37584728的博客 4041

【图像处理】腐蚀(erode)和膨胀(dilate)

1.腐蚀(erode)运算和膨胀(dilate)运算的原理;2.开运算和闭运算的定义和功能;3.OpenCV中的腐蚀运算和膨胀运算

Zhang_Chen_的博客 7235

YOLOv8有效涨点,增强型 YOLOV8 与多尺度注意力机制特征融合,附代码,详细步骤

在本实验中,我们通过将双层路由注意(BRA)、广义特征金字塔网络(GFPN)和第四检测头结合到YOLOv8中,开发了一种新颖的BGF-YOLO架构。BGF-YOLO 包含注意力机制,可以更多地关注重要特征,特征金字塔网络可以通过将高级语义特征与空间细节合并来丰富特征表示。此外,我们研究了不同的注意力机制和特征融合、检测头架构对检测准确性的影响。实验结果表明,与YOLOv8x相比,BGF-YOLO的mAP50增加了4.7%。

kay_545 3045

Opencv中的erode和dilate(腐蚀和膨胀-python实现)

Opencv中的erode和dilate(腐蚀和膨胀-python实现)

Keep_Trying_Go的博客 6224

SAP 采购申请、采购订单的审批策略

采购申请、采购订单的审批策略 采购申请审批 PR审批可以分为:含分类、无分类 1、无分类PR审批: A、后台配置: 设置批准代码(批准代码可以设置多级审批): 发布批准标识使用系统已有的 “2 询价/采购订单”: 新建采购申请审批策略Z1(仅设置1级审批,一共可以设置8级审......

willieyuan的博客 2万+

【视频】GStreamer+WebRTC(九):使用NVIDIA硬编解码

2)下载 GStreamer-bad 插件包源码注意要下载和 GStreamer版本对应的插件包3)下载NVIDIA硬编解码SDK最新的SDK下载地址注意 GStreamer 1.24.2 中调用的 NVIDIA Video_Codec_SDK 不是最新的,先使用下面的方法,查看gst-plugins-bad-1.24.2.tar.xz 对应的NVIDIA Video_Codec_SDK 的版本是多少。

郭老二 260

数字图像处理(12): 形态学处理——图像腐蚀与图像膨胀

目录 1 形态学操作 2 图像腐蚀 3 图像膨胀 参考资料 1 形态学操作 形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构。这里,我们使用同一词语表示数学形态学的内容,将数学形态学作为工具从图像中提取表达和描绘区域形状的有用图像分量,如边界、骨架和凸壳等。 形态学处理主要针对的是二值图像(0或1)。 形态学通常使用图像腐蚀和图像膨胀...

TechArtisan6的博客 3万+

动力学约束下的运动规划算法——Kinodynamic RRT*算法

动力学约束下的运动规划算法——Kinodynamic RRT*算法

慕羽★的博客 6746

opencv-python:15_形态学处理【一】(腐蚀、膨胀、结构元素、cv2.erode(),cv2.dilate(),cv2.getStructuringElement())

形态学处理 形态学概念,腐蚀,膨胀 相关函数有:cv2.erode(),cv2.dilate(),cv2.getStructuringElement() 一、形态学 形态学(morphology)常应用在生物学中,研究动植物的形态和结构; 图像形态学即数学形态学(Mathematical morphology)是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论; 常见图像形态学运算:腐蚀、膨胀、开运算、闭运算、骨架抽取、极线腐蚀、击中击不中变换、Top-hat变换、

余喵爱吃鱼的博客 2928

大模型角色提示词写得再严密,也能被绕过?我用攻击者思维把自己吓了一跳!

很多人以为提示词是“只要写清楚了,模型就能理解”,但实际上——模型并不具备严格的规则意识,它只是在预测下一句话。所以我们必须从“攻防”角度出发,设计更强的防护机制。我这次就是亲身踩坑,用红队思维模拟攻击,才意识到原来提示词注入这么容易中招。你如果也在做 AI 应用、角色系统、提示词驱动的功能,建议你也用类似方式测试一下,不然被绕了都不知道。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1026

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

opencv-python库 cv2腐蚀膨胀cv2.erode() cv2.dilate()

cv2.erode() 是 OpenCV (一个开源的计算机视觉和机器学习库) 中的一个函数,用于对图像进行腐蚀操作。腐蚀是一种形态学操作,通常用于减小图像中前景对象的尺寸或消除小的对象。在这个示例中,我们首先读取一个灰度图像,然后定义一个 5x5 的矩形核。接着,我们使用 cv2.dilate() 函数对图像进行两次膨胀操作,并将结果显示出来。在这个示例中,我们首先读取一个灰度图像,然后定义一个 5x5 的矩形核。接着,我们使用 cv2.erode() 函数对图像进行两次腐蚀操作,并将结果显示出来。

记录学习过程 2191

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

详解opencv python 图片腐蚀和膨胀

腐蚀和膨胀是形态学操作的两个基本操作。它们基于输入图像和结构元素进行处理。腐蚀是一种减少像素强度的操作。它通过将结构元素与图像进行逐像素的按位"与"运算来实现。腐蚀操作会使边界变得更加清晰,并可以用于消除噪声和细化图像。膨胀是一种增加像素强度的操作。它通过将结构元素与图像进行逐像素的按位"或"运算来实现。膨胀操作会使边界扩张,并可以用于填充空隙、图像重建等应用。

牛肉胡辣汤 2043

Statistics and Machine Learning Toolbox

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐蚀和膨胀操作

一、图形的腐蚀和膨胀 图像形态学中两种最基本的操作就是对图形的腐蚀和膨胀,可以说,形态学中的中高级操作都是建立在这两种操作之上。 关于图像腐蚀和膨胀的概念,不严谨的简单理解是:经过腐蚀和膨胀操作后最终的效果是对图像中物体的边界进行一层一层的腐蚀和膨胀操作,这个边界包括内边界和外边界。 严谨的理解是这样的:图像的腐蚀和膨胀实际上是用某种形状的窗去遍历图像中的每一个元素,并用这个区域中的最大值或最小值去代替窗口中的某个元素值(一般设为中心元素),若取的是最大值,则是膨胀操作,若取的是最小值,则是腐蚀操作。这里某

昊虹AI笔记 3436

python学opencv|读取图像(六十)先后使用cv2.erode()函数和cv2.dilate()函数实现图像处理

使用python+opencv检验了对图像先后使用cv2.erode()函数和cv2.dilate()函数进行先腐蚀后膨胀操作的效果。

专注python+工程实践的热心婶子 1197

opencv膨胀腐蚀

腐蚀(Erosion):腐蚀操作与膨胀操作相反,它是将图像中的高亮区域(白色像素)缩小,从而消除小的高亮区域。在这个示例中,我们首先读取了一张图像,然后定义了一个 5x5 的结构元素(卷积核)。接下来,我们使用 `cv2.erode()` 和 `cv2.dilate()` 函数分别进行腐蚀和膨胀操作。膨胀(Dilation):膨胀操作是将图像中的高亮区域(白色像素)扩张,从而填充低亮区域(黑色像素)。OpenCV 是一个开源的计算机视觉库,它包含了许多图像处理的功能,其中膨胀和腐蚀是两种常用的形态学操作。

花生日记 2408

腐蚀与膨胀 erode dilate

import cv2 as cv # erode 腐蚀 def erode_demo(image): gray=cv.cvtColor(image,cv.COLOR_BGR2GRAY) fa,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU) cv.imshow("binary_demo"...

默默的潜行者 483
上一篇: 人工智能数学基础7:无穷大和无穷小的大小比较以及斯特林公式
下一篇: OpenCV-Python腐蚀膨胀函数erode、dilate使用详解
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

LaoYuanPython

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

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

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

打赏作者

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

抵扣说明:

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

余额充值