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()
相关推荐
朱涛的自习室5 分钟前
从 Prompt 到 Graph:AI 工程的进化史
android·前端·人工智能
程序员cxuan17 分钟前
Pi + DeepSeek-v4-Flash,这用着也太爽了。
人工智能·后端·程序员
stormzhangV33 分钟前
2026 年 8 月,我的最新 AI 装机单
人工智能·openai·ai编程
暴躁的小鸟36 分钟前
附近口碑好的斜视配镜训练的眼视光中心
人工智能·python·深度学习
deepseek2338 分钟前
OpenAI 首次为自家模型踩刹车:Astra「无法排除关键网络能力」,Preparedness Framework 第一次真的咬人
人工智能·网络安全·ai agent
zhangfeng11331 小时前
免费 GPU 资源清单(按用途选)包括国产显卡 和 amd显卡 英伟达v100等
人工智能·ai编程·显卡
今天的砖头有点烫手啊1 小时前
AI Agent 开发实战(十):Agent 设计模式(ReAct / Plan-Execute / Reflection)
人工智能·react.js·设计模式
用户8181870627461 小时前
第1章 大模型的本质:为什么"预测下一个词"能做出这么多事
人工智能
敲代码的玉米C1 小时前
让两个模型一写一审
前端·人工智能·架构
山西茄子1 小时前
使用 TensorRT-Edge-LLM 0.9.0 在端侧测试 Qwen3-Omni
人工智能·edge