首页 > 其他分享 >opencv学习笔记(四)

opencv学习笔记(四)

时间:2023-06-20 17:46:15浏览次数:29  
标签:运算 黑帽 image cv2 笔记 学习 opencv 图像 Hat

梯度运算:

是图像形态学中的一种操作,用于检测图像中的边缘。它通过结合膨胀(Dilation)和腐蚀(Erosion)操作来计算图像的梯度。

import cv2
import numpy as np

# 读取图像
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)

# 定义结构元素(内核)
kernel = np.ones((5, 5), np.uint8)  # 这里使用5x5的矩形内核

# 计算梯度
gradient_image = cv2.morphologyEx(image, cv2.MORPH_GRADIENT, kernel)

# 显示原始图像和梯度图像
cv2.imshow('Original Image', image)
cv2.imshow('Gradient Image', gradient_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

梯度运算的结果是通过对原始图像进行膨胀和腐蚀操作,然后计算两幅图像之间的差异得到的。这个过程可以检测出图像中的边缘区域。

梯度运算可以用于图像边缘检测,但由于它是通过膨胀和腐蚀操作得到的,因此对噪声比较敏感。因此,在使用梯度运算时,可能需要在先对图像进行一些预处理操作,如平滑处理或阈值处理,以获得更好的结果。

礼帽和黑帽:

礼貌(Top Hat)和黑帽(Black Hat)是形态学操作中的两种特殊运算,它们结合了原始图像和开运算或闭运算的结果,用于突出图像中的亮区域或暗区域。

礼貌运算(Top Hat)可以通过将原始图像与开运算结果之间的差异来获取。它突出显示了图像中比周围更亮的区域。礼貌运算常用于增强细小或弱亮区域的可见性,如光斑、细微细节或微弱边缘。礼帽 = 原始输入 - 开运算结果

黑帽运算(Black Hat)则是通过将闭运算结果与原始图像之间的差异来获取。它突出显示了图像中比周围更暗的区域。黑帽运算常用于增强细小或弱暗区域的可见性,如噪声、小坑洞或微弱边缘。黑帽 = 闭运算 - 原始输入

import cv2
import numpy as np

# 读取图像
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)

# 定义结构元素(内核)
kernel = np.ones((5, 5), np.uint8)  # 这里使用5x5的矩形内核

# 礼貌运算
tophat_image = cv2.morphologyEx(image, cv2.MORPH_TOPHAT, kernel)

# 黑帽运算
blackhat_image = cv2.morphologyEx(image, cv2.MORPH_BLACKHAT, kernel)

# 显示原始图像、礼貌运算结果和黑帽运算结果
cv2.imshow('Original Image', image)
cv2.imshow('Top Hat Image', tophat_image)
cv2.imshow('Black Hat Image', blackhat_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

标签:运算,黑帽,image,cv2,笔记,学习,opencv,图像,Hat
From: https://www.cnblogs.com/hellou/p/17494284.html

相关文章

  • redis学习十一:数据类型命令及落地运用 (GEO)
    redis之地理空间GEO1.geoaddkeylongitudelatitude名称;zrangekey0-1查看如果出现乱码问题登录时候加上--raw 2.geoposkey名称获取对应经纬度 3.用geohash表示 4.geodist距离多少km/m 5.georadius这个尚硅谷的杨哥写的这个比较详细,直接截图照搬了。 6......
  • MongoDB批量导入Redis优化迭代笔记
    背景统计最近五天所有content信息的正文字节数(正文字段占用较多),然后根据这个大小,推送存在redis要配置多少的内存。统计方法1.在mongodb中查询db.content_.aggregate([{$match:{updatetime:{$gte:1686134400000,//对应日期"2023-06-07T00:00:00Z"的......
  • Dempster/Shafer 证据理论(D-S证据理论) 用于异构数据融合方面的笔记
    Dempster/Shafer证据理论(D-S证据理论)的大体内容如下:一、简介:在理论中,由互不相容的基本命题组成的完备集合Θ称为识别框架,表示对于某一问题的所有可能答案,但是只有一个答案是正确的。其中,θj称为识别框架Θ的一个事件或元素。接着引入幂集的概念,即识别框架Θ全......
  • 【机器学习】最小二乘法(代数&矩阵推导)
    前置知识平方损失函数假设上图的红线就是拟合出的函数,那么每个数据点(xi,yi)所对应的误差就是上面的误差往往也称之为「残差」。但是在机器学习中,我们更喜欢称作「损失」,即真实值和预测值之间的偏离程度。那么,对......
  • 学习抽象概念案例,虚数和复数
    从哲学角度思考虚拟的东西有必要吗?人类可能是唯一一个能够构想出不存在的事物的物种,这个能力对我们来讲非常重要。说实话,虚数其实不好理解,因为这个数是之前的数学家虚构、想象出来的。那么这种虚构的数一定是抽象的,就像我们说的负数,你就很难说它存在或者不存在,当你说“我有-1个......
  • 《程序员修炼之道:从小工到专家》读书笔记
      这本书最初出中文译本的时候,它的名字叫《务实的程序员》,而这本书也正像它书名的副标题那样,是一本带领程序员从小工成为行业专家的著作。这本书里有70个Tip(指点、提示),这些Tip都是短小精炼的句子,但都是大师们编程经验的总结和沉淀。因此不管什么时候看这本书,也不管你翻到第几页,总......
  • 《重构:改善既有代码的设计》读书笔记
      如果一个人没有听说过《重构》这本书,那么他一定不敢说自己是程序员;如果一个人没有阅读过《重构》这本书,那么很难想象他会是一名优秀的程序员。这本书是很多公司要求Java程序员必读的三本书之一(另外两本书是《Java编程思想》和《EffectiveJava》),其实无关编程语言,是程序员就能够......
  • iOS开发笔记 - 用CocoaPods管理第三方库
    在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确配置这些第三方库会非常的繁琐,还好我们有CocoaPods来做这件事情,就如同在Java的世界里有Maven和Gradle,当然Maven的作用不仅仅是第三依赖库管理。通过CocoaPods工具我们可以为项目添加被称为"Pods"的依赖库(这些类库必须是Coc......
  • iOS开发笔记 - App上架流程(视频分享)
    具体的文档可以看一下我的《iOS开发笔记-上线流程》iOS项目上线流程视频百度云盘分享下面是一些相关的官方文档:https://developer.apple.com/app-store/review/guidelines/-项目审核指南http://www.apple.com/legal/intellectual-property/guidelinesfor3rdparties.htmlhttps......
  • 前端学习笔记_思维导图和资源链接
    17素材资源jQueryapi中文文档脑图-前端总结脑图-jquery总结脑图-js正则总结后台主题框架echartsjQuery插件adminlte......