OpenCv之图像形态学(二)

目录

一、形态学梯度

二、顶帽操作

三、黑帽操作


一、形态学梯度

  • 梯度=原图 - 腐蚀
  • 腐蚀之后原图边缘变小,原图 - 腐蚀 就可以得到腐蚀掉的部分,即边缘

案例代码如下:

python 复制代码
import cv2
import numpy as np

# 导入图片
img = cv2.imread('6.jpg')

# 注意调节kernel大小以获得更清晰的边缘
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))

dst = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel,iterations=1)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下:

二、顶帽操作

  • 顶帽 = 原图 - 开运算
  • 开运算的效果是去除图形外的噪点,原图 - 开运算就得到了去掉的噪点

案例代码如下:

python 复制代码
import cv2
import numpy as np


img = cv2.imread('6.jpg')

# 注意调整kernel以保留小图形
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(19,19))

dst = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel,iterations=1)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

三、黑帽操作

  • 黑帽 = 原图 - 闭运算
  • 闭运算可以将图形内部的噪点去掉,那么原图 - 闭运算的结果就是图形内部的噪点

案例代码如下:

python 复制代码
import cv2
import numpy as np


img = cv2.imread('6.jpg')

# 注意调整kernel以保留小图形
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(19,19))

dst = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel,iterations=1)

cv2.imshow('img',np.hstack((img,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
米小虾3 小时前
不写出来的思考:把 Transformer 的层循环起来,是第三条 scaling 轴还是省错了地方?
人工智能
A.说学逗唱的Coke3 小时前
【大模型专题】别再用 HTTP 直连 Agent 了:用 Kafka 承载 A2A 协议,从 PoC 走到生产
人工智能·kafka·a2a
资讯综合3 小时前
2026企业AI平台选型指南:多维视角下的主流方案解析
人工智能
资讯综合3 小时前
向日葵 vs ToDesk 个人远控横评:PC/手机/弱网/远程开机实测(26年9月更新)
人工智能
布吉岛的石头3 小时前
Java 程序员第 48 阶段15:Transformer 架构总览与自注意力直觉,注意力权重可视化:用 Java 打印注意力矩阵理解模型在看什么
人工智能·深度学习·transformer
正经教主4 小时前
【FDE系列】阶段1Day 11:Prompt — 给模型立规矩
人工智能·fde
海上小飞龙4 小时前
LangChain 模型调用:invoke、stream、batch 到底该怎么选?
人工智能·语言模型·自然语言处理
美狐美颜sdk4 小时前
直播APP开发技术栈详解:视频美颜SDK、人脸识别与实时渲染
android·人工智能·音视频·美颜sdk·直播美颜sdk
jason_renyu4 小时前
Windows 环境下 Python 方式安装 Milvus 向量库与 Attu 避坑指南
人工智能·milvus·windows安装milvus·windows安转向量库