顶帽(Top Hat):

原图像与开操作之间的差值图像,突出原图像中比周围亮的区域

黑帽(Black Hat):

闭操作图像与原图像的差值图像, 突出原图像中比周围暗的区域

形态学梯度(Gradient):

基础梯度:基础梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度有称为基本梯度。

内部梯度:是用原图像减去腐蚀之后的图像得到差值图像,称为图像的内部梯度。

外部梯度:图像膨胀之后再减去原来的图像得到的差值图像,称为图像的外部梯度。

顶帽python实现以及结果

deftop_hat_demo(image):

gray=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

kernel= cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))

dst=cv2.morphologyEx(gray, cv2.MORPH_TOPHAT, kernel)#提升亮度

cimage =np.array(gray.shape, np.uint8)

cimage= 100dst=cv2.add(dst, cimage)

cv2.imshow("top_hat_demo", dst)

黑帽python实现以及结果

defblack_hat_demo(image):

gray=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

kernel= cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))

dst=cv2.morphologyEx(gray, cv2.MORPH_BLACKHAT, kernel)#提升亮度

cimage =np.array(gray.shape, np.uint8)

cimage= 100dst=cv2.add(dst, cimage)

cv2.imshow("black_hat_demo", dst)

二值图像的顶帽与黑帽操作

def threshold_top_hat_demo(image): #二值图像顶帽操作

gray =cv2.cvtColor(image, cv2.COLOR_BGRA2GRAY)

ret, thresh= cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY |cv2.THRESH_OTSU)

kernel= cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))

dst=cv2.morphologyEx(thresh, cv2.MORPH_TOPHAT, kernel)

cv2.imshow("dst", dst)def threshold_black_hat_demo(image): #二值图像黑帽操作

gray =cv2.cvtColor(image, cv2.COLOR_BGRA2GRAY)

ret, thresh= cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY |cv2.THRESH_OTSU)

kernel= cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))

dst=cv2.morphologyEx(thresh, cv2.MORPH_BLACKHAT, kernel)

cv2.imshow("dst", dst)

形态学梯度操作

defgradient1_demo(image):

cv2.imshow("image", image)

gray=cv2.cvtColor(image, cv2.COLOR_BGRA2GRAY)

ret, thresh= cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY |cv2.THRESH_OTSU)

kernel= cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))

dst= cv2.morphologyEx(thresh, cv2.MORPH_GRADIENT, kernel) #基本梯度

cv2.imshow("dst", dst)defgradients2_demo(image):

cv2.imshow("image", image)

kernel= cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))

dm=cv2.dilate(image, kernel)

em=cv2.erode(image, kernel)

dst1= cv2.subtract(image, em) #内部梯度

dst2 = cv2.subtract(dm, image) #外部梯度

cv2.imshow("internal", dst1)

cv2.imshow("external", dst2)

内部梯度,外部梯度结果

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

  1. pythonopencv图像形态_python+opencv图像形态学处理详细解释(膨胀、腐蚀、开闭运算、礼帽和黑猫)...

    python+opencv图像形态学处理 本篇博客主要是关于形态学中的腐蚀.膨胀.开运算.闭运算.礼帽和黑帽的函数用法. 内容会比较,为方便查阅.代码的解释会写在代码中. 用于测试的图像原图: 一.腐 ...

  2. python数字图像处理、色彩空间类型转换_Python+OpenCV图像处理—— 色彩空间转换...

    一.色彩空间的转换 代码如下: #色彩空间转换 import cv2 as cv def color_space_demo(img): gray = cv.cvtColor(img, cv.COLOR ...

  3. python 检测直线 交点_Python+OpenCV图像处理——实现直线检测

    简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线 ...

  4. python怎么打印图片_Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头...

    一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的python科学计算库 ...

  5. openCV专栏(五):形态学操作+梯度算子

    OPENCV基础操作 提示:本专栏所用版本仅供参考,其他版本也可 库 版本 python Python 3.9.3 opencv 4.5.5 matplotlib 3.4.3 numpy 1.19.5 ...

  6. OpenCV(八)形态学操作3--形态学梯度实现轮廓分析(基本梯度、内部梯度、外部梯度、方向梯度X(Y))

    目录 形态学梯度概述 一.基本梯度 1.原理 2.代码 3.效果 二.内部梯度 1.原理 2.代码 3.效果 三.外部梯度 1.原理 2.代码 3.效果 四.方向梯度 1.原理 2.二值化图像(黑白) ...

  7. OpenCV(六)形态学操作1--基础:膨胀与腐蚀(回调函数)

    目录 形态学通用API:morphologyEx 一.基础理论 1.邻接关系 (1)四邻接: (2)D邻接: (3) 八邻接: 2.连通性 (1)四连通: (2)八连通: (3)m连通: 3.形态学基 ...

  8. OpenCV(七)形态学操作2--开运算与闭运算

    目录 概述: morphologyEX()函数 一.开运算(分开) 1.基础理论 1.作用: 2.代码 3.效果 二.闭运算(封闭) 1.基础理论 1.作用 2.过程 2.代码 3.效果 总代码 参考 ...

  9. python 图像变化检测_Python OpenCV 霍夫(Hough Transform)直线变换检测原理,图像处理第 33 篇博客...

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 33 篇. 基础知识铺垫 霍夫变换(Hough Transform)是图像处理领域中,从图像中识别几 ...

最新文章

  1. 初中英语八下单词表(SuperMemo QA文本格式)
  2. Nginx 日志文件切割
  3. 父与子的编程之旅 python 3 pdf_《父与子的编程之旅》嵌套循环例题解析
  4. 【随感】i'm new here
  5. [一起读源码]走进C#并发队列ConcurrentQueue的内部世界 — .NET Core篇
  6. 2021牛客暑期多校训练营7 K-xay loves sequence(主席树+二分)
  7. python去重计数_用Python实现透视表的value_sum和countdistinct功能
  8. http访问请求慢的解决思路
  9. Scratch可以参加的编程比赛大全
  10. SMTP,POP3协议邮件Wireshark抓包实验及内容还原
  11. 李一男复出,能否完成一次“永不言败”的创业?
  12. 关于Flume断点续传(防止重复消费)的解决方案
  13. 小程序typescript_16天:从概念到实现的TypeScript应用程序
  14. USB Network Native Driver for ESXi更新到支持ESXi7.0.1
  15. Java和Python哪个比较有前途,好就业?(初学者必读)
  16. 天津医科大学计算机研究生吧,天津医科大学
  17. 天荒地老修仙功-第七部:Dubbo基本使用与原理详解
  18. 企业微信公告可以发布图片吗?
  19. 基于知识图谱的玉米病虫害知识问答(一)
  20. 华为云14天鸿蒙设备开发-Day1环境搭建

热门文章

  1. Easyui笔记:jquery执行append后input的验证失效解决方案
  2. HSSFCellStyle.ALIGN_CENTER报错
  3. android Module之间数据传递
  4. hapi 使用 lab 和 code 进行测试
  5. 重建AD域控制器的DNS服务器
  6. 嵌入式linux截屏代码,嵌入式linux截屏程序
  7. redis 三种特殊数据类型
  8. spring bean的创建,生命周期
  9. 信息抽取--关键句提取
  10. android 杀 服务器,android busybox httpd搭建简单web服务器