1. 礼帽运算

原图像与“开运算“的结果图之差,如下式计算:

因为开运算带来的结果是放大了裂缝或者局部低亮度的区域,因此,从原图中减去开运算后的图,得到的效果图突出了比原图轮廓周围的区域更明亮的区域,且这一操作和选择的核的大小相关。

礼帽运算用来分离比邻近点亮一些的斑块。当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。

  1. 黑帽运算

为”闭运算“的结果图与原图像之差。数学表达式为:

黑帽运算后的效果图突出了比原图轮廓周围的区域更暗的区域,且这一操作和选择的核的大小相关。

黑帽运算用来分离比邻近点暗一些的斑块。

cv.morphologyEx(img, op, kernel)
  • img: 要处理的图像

  • op: 处理方式:

    • cv.MORPH_OPEN:开运算
    • cv:MORPH_CLOSE:闭运算
    • cv:MORPH_TOPHAT:礼帽运算
    • cv:MORPH_BLACKHAT:黑帽运算
  • Kernel: 核结构

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt# 1 读取图像
img1 = cv.imread("./1.png")
img2 = cv.imread("./2.png")# 2 创建核结构
kernel = np.ones((10, 10), np.uint8)# 3 图像的礼帽和黑帽运算
cvOpen = cv.morphologyEx(img1, cv.MORPH_TOPHAT, kernel)   # 礼帽运算
cvClose = cv.morphologyEx(img2, cv.MORPH_BLACKHAT, kernel)  # 黑帽运算# 4 图像显示
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8))
axes[0, 0].imshow(img1)
axes[0, 0].set_title("原图")
axes[0, 1].imshow(cvOpen)
axes[0, 1].set_title("礼帽运算结果")
axes[1, 0].imshow(img2)
axes[1, 0].set_title("原图")
axes[1, 1].imshow(cvClose)
axes[1, 1].set_title("黑帽运算结果")
plt.show()

OpenCV 礼帽和黑帽相关推荐

  1. OpenCV 礼帽与黑帽

    形态学-腐蚀操作 img = cv2.imread('sleep.png')kernel = np.ones((5, 5), np.uint8) erosion = cv2.erode(img, ke ...

  2. opencv中礼帽和黑帽_一流的礼帽

    opencv中礼帽和黑帽 Problem statement: 问题陈述: There is a class of N students and the task is to find the top ...

  3. 基于python的opencv图像形态学处理(图像腐蚀与膨胀操作以及礼帽与黑帽)

    腐蚀与膨胀 图像的腐蚀与膨胀互为逆向操作,通常用于处理二值图像(黑白图,以黑色为底面背景),因此需要先进行二值化处理,腐蚀和膨胀通俗的理解就是,在指定大小的卷积核内,如果该卷积核内全为黑色或全为白色, ...

  4. python+OpenCv笔记(七):图像的形态学操作(腐蚀与膨胀、开闭运算、礼帽与黑帽)

    一.腐蚀与膨胀 腐蚀就是原图中高亮的部分被蚕食,效果图拥有比原图更小的高亮区域. 腐蚀的作用是:消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点. 膨胀就是使原图中高亮的部分扩张,效果图拥有比 ...

  5. 【opencv学习】【形态学】【腐蚀与膨胀】【开运算与闭运算】【礼帽和黑帽】

    一:膨胀和腐蚀 原始图像如下: hw.png hw_inv.png 如下展示代码: import numpy as np import random import cv2 import matplot ...

  6. OpenCV梯度运算、礼帽与黑帽

    # 梯度=膨胀-腐蚀 pie_t = cv2.imread("pie.png") kernel_t = np.ones((5,5),np.uint8) digete_t = cv2 ...

  7. OpenCV_05 形态学操作:连通性+腐蚀和膨胀+开闭运算+礼帽和黑帽

    1 连通性 在图像中,最小的单位是像素,每个像素周围有8个邻接像素,常见的邻接关系有3种:4邻接.8邻接和D邻接.分别如下图所示: 4邻接:像素p(x,y)的4邻域是:(x+1,y):(x-1,y): ...

  8. 礼帽和黑帽及opencv实现

    目录 1 原理 1.1 礼帽运算 1.2 黑帽运算 2 opencv 实现 2.1 礼帽运算 2.2 黑帽运算 1 原理 1.1 礼帽运算 原图像与"开运算"的结果图之差. 开运算 ...

  9. opencv打卡52-53: 礼帽与黑帽tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)//////balckhat = cv2.mor

    1.介绍 礼帽 = 原始输入-开运算结果 黑帽 = 闭运算-原始输入 tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel) balckhat ...

最新文章

  1. 连接远程ms sql server 2000企业版时出现错误:10061的解决方法
  2. 基于SSM实现垃圾分类信息管理系统
  3. 如何在awk中引用外部变量
  4. OpenCV2.4.13在VS2012环境的debug模式下的链接库输入配置的文件目录
  5. zookeeper web ui--gt;node-zk-browser安装
  6. shiro自定义Realm
  7. 极力推荐5款我一直在使用的Chrome优秀插件!
  8. linux属性表示的文件,Linux基础入门:文件和目录属性的含义
  9. oracle监听服务丢失,Oracle监听服务无法启动或丢失的解决办法
  10. Java多线程学习三十六:主内存和工作内存的关系
  11. Android 小游戏添加音效
  12. 【转】DVI转HDMI没声音怎么办
  13. 99%的人误解BLM中的“战略”与“执行”的关系及错误认为BLM/BEM就是战略解码的全部!
  14. Unity SRP初识之URP
  15. salesforce架构_使用Salesforce扩展用户研究运营基础架构
  16. 【记录】深度学习之蒸馏法训练网络
  17. 浙大计算机跨专业考研心路历程记录
  18. 今日头条广告如何优化?这四个思路至关重要
  19. Nacos源码之一-配置自动更新(重写)
  20. python安装及模块安装

热门文章

  1. Android注解使用之Dagger2实现项目依赖关系解耦
  2. 第二十一课:材料磁性
  3. C# PictureBox加载图片并显示进度条
  4. 两道概率题-供大家周末把玩
  5. docker 容器状态 restarting_20分钟极简入门Docker
  6. php对图像的各种处理函数代码小结
  7. 将HTML5 Canvas的内容保存为图片
  8. 跟我学Spring3(8.2):对ORM的支持之集成Hibernate3
  9. mini2440 裸机编程 -led
  10. Java常见内存溢出(OOM)解决方案