opencv Canny边缘检测


canny阈值越高,检测到的边缘数量越少

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)  
  
sobelx = cv2.Sobel(cat,cv2.CV_64F,1,0,ksize=3)  
sobely = cv2.Sobel(cat,cv2.CV_64F,0,1,ksize=3)  
sobelx = cv2.convertScaleAbs(sobelx)  
sobely = cv2.convertScaleAbs(sobely)  
sobelxy = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0)  
  
scharrx = cv2.Scharr(cat,cv2.CV_64F,1,0)  
scharry = cv2.Scharr(cat,cv2.CV_64F,0,1)  
scharrx = cv2.convertScaleAbs(scharrx)  ![](https://gitee.com/lindongcms/blog/raw/master/img/202412131548505.png)
scharry = cv2.convertScaleAbs(scharry)  
scharrxy = cv2.addWeighted(sobelxy, 0.5, sobely, 0.5,0)  
  
laplacian = cv2.Laplacian(cat,cv2.CV_64F)  
laplacian = cv2.convertScaleAbs(laplacian)  
res = np.hstack((sobelxy,scharrxy,laplacian))  
cv2.imshow('window1', res)  
  
res1 = cv2.Canny(cat,80,150)  
res2 = cv2.Canny(cat,50,100)  
res = np.hstack((res1,res2))  
cv2.imshow('window3', res)  
key = cv2.waitKey(0)  
  
# 检查按下的键是否是'q',如果是则销毁所有窗口  
if key & 0xFF == ord('q'):  # 0xFF是掩码,用于确保只检查最低8位  
    print("准备销毁窗口")  
    cv2.destroyAllWindows()

检测效果图

相关推荐
李福春10 分钟前
降SpringAI阿里第1掌-亢龙有悔-识势选型
人工智能·架构·腾讯云架构师同盟
李航198313 分钟前
给自己的图形引擎,配上了AI渲染,做设计真是太方便了
人工智能·python·计算机视觉·ai·ai编程
m0_4665252927 分钟前
数字认证参加第十四届用户体验大会,分享标准建设思路
大数据·人工智能·科技
康实训32 分钟前
2026数字化AI智慧实训建设方案
大数据·人工智能·实训室·实训室建设
染指11101 小时前
128.Agent-LangChain核心组件-中间件-调用模型的时候
人工智能·windows·中间件·langchain·agent
布吉岛的石头1 小时前
Java 程序员第 49 阶段5:BERT 预训练目标 MLM+NSP 的工程含义
java·人工智能·深度学习·bert·transformer
玫瑰互动GEO1 小时前
开发者学GEO优化:从算法基础到CoT推理链
大数据·人工智能·ai·geo·ai搜索·geo优化
Zentceh1 小时前
安防监控夜视方案2026:AI全彩+边缘计算+云平台
图像处理·人工智能·科技·计算机视觉·车载系统·无人机·边缘计算
voipmaker1 小时前
AI 赋能安防系统演进:从硬件单品到场景化融合调度架构
人工智能·ai·架构
做cv的小昊1 小时前
【World Model】π0.5:a Vision-Language-Action Model with Open-World Generalization
人工智能·算法·机器学习·大模型·多模态·vla·世界模型