opencv礼帽和黑帽运算

礼帽 = 原始输入 - 开运算结果,留存的以白色毛刺为主

黑帽 = 闭运算 - 原始输入,保留的更多是原始轮廓

python 复制代码
# 导入OpenCV库,用于图像处理  
import cv2  
import numpy as np  
# 从matplotlib库中导入pyplot模块,用于绘制图像  
from matplotlib import pyplot as plt  
  
# 创建一个名为'window'的窗口,窗口大小自动调整  
cv2.namedWindow('window', cv2.WINDOW_AUTOSIZE)  # cv2.WINDOW_AUTOSIZE: 窗口大小自动调整,不允许用户改变窗口大小  
  
# 使用OpenCV的imread函数读取名为"mao.jpg"的图片,参数1表示读取彩色图像  
cat = cv2.imread("mao.jpg", 0)  # cat变量存储读取的图像数据,OpenCV默认以BGR格式读取  
  
# 在名为'window'的窗口中显示图像  
cv2.imshow('window', cat)  
  
kernel = np.ones((5, 5), np.uint8)  
opening = cv2.morphologyEx(cat, cv2.MORPH_TOPHAT, kernel)  # 礼帽运算  
closing = cv2.morphologyEx(cat, cv2.MORPH_BLACKHAT, kernel)  # 黑帽运算  
cv2.imshow('window1', opening)  
cv2.imshow('window2', closing)  
  
# 等待按键事件,0表示无限期等待  
key = cv2.waitKey(0)  
  
# 检查按下的键是否是'q',如果是则销毁所有窗口  
if key & 0xFF == ord('q'):  # 0xFF是掩码,用于确保只检查最低8位  
    print("准备销毁窗口")  
    cv2.destroyAllWindows()
相关推荐
米小虾6 分钟前
2026年AI Agent全面爆发:从开源生态到企业级应用的进化之路
人工智能·agent
用户69190268133924 分钟前
Vibe Coding 开发项目的基本范式
人工智能·设计模式·代码规范
To_OC28 分钟前
别再跟 AI 死磕 prompt 了,我写了个 Loop 让它自己改到满意为止
人工智能·aigc·agent
血小溅1 小时前
三大 AI 编码框架深度对比:GSD vs OpenSpec vs Superpowers
人工智能·后端
武子康4 小时前
调查研究-186 LangChain 和 LangGraph 的区别:从快速构建 Agent 到生产级工作流编排
人工智能·langchain·llm
武子康5 小时前
调查研究-185 CodeGraph 调研:给 AI 编程 Agent 一张代码库地图,少一点反复 grep(2026)
人工智能·openai·claude
aqi005 小时前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
混沌福王7 小时前
Electron三端统一架构:运行时Adapter、IPC能力边界与分层设计
人工智能·agent·ai编程
说了很好7 小时前
马尔可夫扩散链+损失函数推导,手把手实现原生Diffusion
人工智能