day14 - 提取图像信息

news2024/11/24 22:52:21

本期主要介绍图像的礼帽运算和黑帽运算,礼帽运算常用于获取原始图像的噪声信息,或者得到比原始图像的边缘更亮的边缘信息;黑帽运算常用来检测图像中的波谷结构,分离比邻近点暗一些的斑块,比如得到轮廓效果图。

完成本期内容,你可以:

  • 了解图像礼帽运算的原理和应用

  • 了解图像黑帽运算的原理和应用

  • 学会使用礼帽运算进行图像处理

  • 学会使用黑帽运算进行图像处理

若要运行案例代码,你需要有:

  • 操作系统:Ubuntu 16 以上 或者 Windows10

  • 工具软件:VScode 或者其他源码编辑器

  • 硬件环境:无特殊要求

  • 核心库:python 3.6.13, opencv-contrib-python 3.4.11.39,opencv-python 3.4.2.16

点击下载源码


礼帽运算

礼帽运算,也称顶帽运算或高帽运算,是用原始图像减去其开运算图像的操作。礼帽运算获取原始图像的噪声信息,或者得到比原始图像的边缘更亮的边缘信息,比如得到前景图外面的毛刺噪声。

礼帽图像=原始图像-开运算图像=原始图像-(原始图像先腐蚀再膨胀)

  • 首先读取图像
  • 进行图像开运算操作
  • 原始图像减去开运算图像,得到相减后的图像,获得礼帽运算图像的结果

黑帽运算

黑帽运算是用其闭运算图像减去原始图像的操作。黑帽运算获取图像内部的小孔,或前景图像的小黑点,或得到比原始图像的边缘更暗的边缘部分。黑帽运算常用来检测图像中的波谷结构,分离比邻近点暗一些的斑块,比如得到轮廓效果图。

黑帽图像=闭运算图像-原始图像=(原始图像先膨胀后腐蚀)-原始图像

  • 首先读取图像
  • 进行图像闭运算操作
  • 闭运算图像减去原始图像,得到相减后的图像,获得黑帽运算图像的结果

形态学方法

  • OpenCV将形态学方法封装成了cv2.morphologyEx()方法。

    函数原型:dst = cv2.morphologyEx(src, op, kernel, anchor, iterations, borderType, borderValue)
    dst为输出图像。

    参数描述如下:

    • src:被处理的图像
    • kernel:操作中使用的核
    • anchor:可选参数,核锚点的位置
    • iterations:可选参数,迭代次数,默认值为1
    • borderType:可选参数,边界样式,建议采用默认值
    • borderValue:可选参数,边界值,建议采用默认值
    • op:操作类型
    参数值含义
    cv2.MORPH_ERODE腐蚀操作
    cv2.MORPH_DILATE膨胀操作
    cv2.MORPH_OPEN开运算,先腐蚀后膨胀
    cv2.MORPH_CLOSE闭运算,先膨胀后腐蚀
    cv2.MORPH_GRADIENT梯度运算,膨胀图减腐蚀图,可以得到简易的轮廓
    cv2.MORPH_TOPHAT顶帽运算,原始图像减开运算图像
    cv2.MORPH_BLACKHAT黑帽运算,闭运算图像减原始图像

具体步骤

1. 创建项目结构

创建项目名为提取图像信息,项目根目录下新建code文件夹储存代码,新建dataset文件夹储存数据,项目结构如下:

提取图像信息                             # 项目名称
├── code                               # 储存代码文件
├── dataset                            # 储存数据文件

注:如项目结构已存在,无需再创建。

2. 使用图像礼帽运算进行图像处理

  1. code文件夹下创建tophat.py文件;
  2. 导入所需的库,OpenCV、numpy ;
  3. 读取dataset文件夹下的ursa_minor.png图片,并进行展示 ;
  4. 设置一个7 *7 的值都为1 的核;
  5. 使用礼帽运算进行图像处理,并展示结果;

代码实现

# 导入OpenCV、numpy
import cv2
import numpy as np
o=cv2.imread("../dataset/ursa_minor.png")#原始图像
k=np.ones((7,7),np.uint8)#设置核kernel
r=cv2.morphologyEx(o,cv2.MORPH_TOPHAT,k)#礼帽运算
cv2.imshow("original",o)
cv2.imshow("tophat",r)
cv2.waitKey()
cv2.destroyAllWindows()

请添加图片描述

处理前后对比

图像开运算操作放大了裂缝或者局部降低亮度的区域,礼帽运算常用来分离比邻近点亮一些的斑块。在一幅图像具有大幅的背景且微小物品比较有规律的情况下,使用礼帽运算达到背景提取,使得线条更加突出的目的。

3. 使用图像黑帽运算进行图像处理

  1. code文件夹下创建blackhat.py文件;
  2. 导入所需的库,OpenCV、numpy ;
  3. 读取dataset文件夹下的ursa_minor.png图片,并进行展示 ;
  4. 设置一个7 *7 的值都为1 的核;
  5. 使用黑帽运算进行图像处理,并展示结果;

代码实现

# 导入OpenCV、numpy
import cv2
import numpy as np
o=cv2.imread("../dataset/ursa_minor.png")#原始图像
k=np.ones((7,7),np.uint8)#设置核kernel
r=cv2.morphologyEx(o,cv2.MORPH_BLACKHAT,k)#黑帽运算
cv2.imshow("original",o)
cv2.imshow("balckhat",r)
cv2.waitKey()
cv2.destroyAllWindows()

请添加图片描述

处理前后对比

本小节主要介绍了礼帽运算和黑帽运算。通过两种运算对同一张图像进行处理,强化大家对礼帽运算和黑帽运算的理解,礼帽运算主要用于分离比邻近点亮一些的斑块,在一幅大图像具有大幅的背景,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。 而黑帽运算常用于分离比邻近点暗一些的斑块。

点击下载源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构——实现单向链表

文章目录 :cow:前言:banana:单链表与顺序表的对比:orange:单链表的初始操作及结构体:watermelon:申请一个节点:carrot:打印:strawberry:销毁:apple:尾插:pear:尾删:grapes:头插:peach:头删:pineapple:数据的查找:lemon:数据的修改:tomato:在pos位置之后插入节点:potato:在pos位…

编辑距离算法

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 "horse", word2 "ros&quo…

ChatGPT真的可以帮助你申请留学吗?未必!

在留学申请的整个流程中,如果说哪一项是最不可或缺的项目,那“文书写作”一定首当其冲。国外院校对学生的评估参考项目,除了文书以外,也在不断地探寻更多的评估方式来全面地了解申请的学生。 从加州大学的申请流程中可以了解到这方…

Spring 之 jwt,过滤器,拦截器,aop,监听器

Spring 之 jwt,过滤器,拦截器,aop,监听器 一、jwt编写1.1 pom1.2 JwtUtils1.3 注意1.4 用法 二、过滤器2.1 原理2.2 使用场景2.3 使用步骤2.3.1 自定义过滤器类implements Filter2.3.2 配置类2.3.3 过滤器使用场景 2.4 问题 三、拦…

中美信托金融大厦(总体)建筑能耗管理系统的设计与应用

摘要:大型公共建筑总面积不足城镇建筑总面积的4%,但总能耗却占全国城镇总耗电量的22%,大型公共建筑单位面积年耗电量达到70~300KWh,为普通居民住宅的10~20倍。公共建筑是节能大户和节能主要对象&#xff0c…

这些论文的作者居然是猫、狗、仓鼠……

01 猩猩 Journal of Applied Animal Welfare Science 期刊在2007年发表了论文 Welfare of Apes in Captive Environments: Comments On, and By, a Specific Group of Apes (圈养环境中的猿类福利:对特定类群的评论”),作者Sue S…

Web服务组合优化 基于改进哈里斯鹰算法的Web服务组合优化【Matlab代码22#】

文章目录 【可更换其他算法,获取资源请见文章第7节:资源获取】1. Web服务2. QoS感知的Web服务组合3. 改进后的CHHO算法3.1 原始HHO算法3.2 CHHO算法 4. 优化目标5. 部分代码展示6. 仿真结果展示7. 资源获取 【可更换其他算法,获取资源请见文章…

详解token已过期含义及解决方 token过期是否需要重新登录

详解token已过期含义及解决方 token过期是否需要重新登录Web应用和用户的身份验证息息相关,从单一服务器架构到分布式服务架构再到微服务架构,用户安全认证和授权的机制也一直在演进,下文对各个架构下的认证机制做个总结。单一服务器架构该架…

day19 - 使用高通滤波提取图像边缘

在OpenCV中,对于图像或者视频的处理都或多或少的会涉及傅里叶变换的概念。在数学上,傅里叶变换是指所有的波形都可以由一系列简单且频率不同的正弦曲线叠加得到。也就是说,人们所看到的波形都是由其他波形叠加得到的。这个概念对操作图像非常…

Linus Torvalds发布了第一个Linux内核6.4候选版本

导读自Linux内核6.3发布和下一个内核系列Linux 6.4的合并窗口开放以来,已经过去了一段时间,近日,Linus Torvalds发布了第一个RC(候选发布版)的里程碑,供公众测试。 为期两周的Linux内核6.4合并窗口现已关闭…

3D开发程序员,如何在程序中将GLB格式转OBJ

Aspose.3D 是一个功能丰富的游戏软件和计算机辅助设计(CAD)的API,可以在不依赖任何3D建模和渲染软件的情况下操作文档。API支持Discreet3DS, WavefrontOBJ, FBX (ASCII, Binary), STL (ASCII, Binary), Universal3D, Collada, glTF, GLB, PLY…

微信小程序的基本使用以及安装教程

目录 一、使用微信开发者工具1、第一步先进行安装微信开发者工具2、使用方式安装完成后的使用步骤项目的大概界面 二、注册小程序账号在此处申请AppID,用于微信开发者工具的建立项目使用 三、使用微信官方文档 一、使用微信开发者工具 1、第一步先进行安装微信开发…

ASP-IIS中间件文件解析与写权限

ASP-IIS中间件文件解析与写权限 IIS文件解析 IIS 6 解析漏洞 1、该版本默认会将*.asp;.jpg 此种格式的文件名,当成Asp解析 2、该版本默认会将*.asp/目录下的所有文件当成Asp解析。 如:logo.asp;.jpg xx.asp/logo.jpgIIS 7.x 解析漏洞 在一个文件路…

Dubbo 3.2.1预览版发布,很多方面有改变

导读Dubbo 3.2.1预览版发布,很多方面有改变,比如:错误修正,代码增强,依赖性升级等。 改变了什么 功能介绍 添加追踪启动器 && 添加 zipkin 自动配置 by conghuhu in #12013QoS支持匿名命令允许列表 by Album…

2023智源大会议程公开 | 基于认知神经科学的大模型

2023年,人工智能新研究、新系统、新产品竞放——我们即将见证另一场有关智能的惊叹演化。6月9日,2023北京智源大会,将邀请这一领域的探索者、实践者、以及关心智能科学的每个人,共同拉开未来舞台的帷幕,你准备好了吗&a…

设备远程运维,实现设备管理智能化!

一、设备管理现状 设备运行状况:设备分布各地,无法远程监测设备运行参数、故障情况,对名下设备的运营情况懵然不知,能耗产量等关键数据无从知晓。 设备运营服务:当设备发生故障时,无法判断故障原因&#x…

IDEA重装后打开的一些设置

文章目录 1. 支持正版&科学永久2. 打开本地项目成功运行2. 修改IDEA的一些基本设置 1. 支持正版&科学永久 略(狗头)~ 2. 打开本地项目成功运行 刚打开项目,application是红叉状态点击Edit Configuration,配置好settings.xml和mave…

分布式项目10. js中src进行服务器之间的访问和优化使用jsonp的ajax请求处理访问

一般使用ajax来访问不同服务器的数据&#xff0c;可行吗&#xff1f; 做个实验&#xff1a; 第一步&#xff1a;在本服务器中使用ajax技术访问本服务器数据 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>测试JSON跨域…

【SpringMVC】SpringMVC的入门程序——HelloWorld(有点详细)

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

GP05丨多因子IC对冲

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 大家好&#xff0c;今天我们分享股票社群第5期量化策略——多因子IC对冲。 在前几期中&#xff0c;我们分享了GP01多因子、ETF轮动策略及Plus版本、网格等等。本期我们继续分享多因子策略。 策略背景与…