Python Opencv实践 - Canny边缘检测

复制代码
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_GRAYSCALE)
print(img.shape)

#图像Canny边缘检测
#cv.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]]) 
#image:原图
#threshold1: 阈值1(最小值)
#threshold2:阈值2(最大值)
#edges: 图像边缘信息
#apertureSize: sobel算子卷积核大小
#L2gradient: True: 使用L2范数做梯度计算
#             False: 使用L1范数做梯度计算
#参考资料:https://blog.csdn.net/weixin_42272768/article/details/111244896?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-8-111244896-blog-119821939.235%5Ev38%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-8-111244896-blog-119821939.235%5Ev38%5Epc_relevant_default_base&utm_relevant_index=14
img_canny_thresholds1 = cv.Canny(img, 128, 140)
img_canny_thresholds2 = cv.Canny(img, 32, 128)

#显示图像
fig,axes = plt.subplots(nrows=1, ncols=3, figsize=(15,15), dpi=100)
axes[0].set_title("Original")
axes[0].imshow(img, cmap=plt.cm.gray)
axes[1].set_title("Canny Min:128 Max:140")
axes[1].imshow(img_canny_thresholds1, cmap=plt.cm.gray)
axes[2].set_title("Canny Min:32 Max:128")
axes[2].imshow(img_canny_thresholds2, cmap=plt.cm.gray)
相关推荐
斯奕sky_small-BAD7 分钟前
C++ if语句完全指南:从基础到工程实践
java·开发语言·php
Humbunklung17 分钟前
Rust Floem UI 框架使用简介
开发语言·ui·rust
Yxh181377845541 小时前
抖去推--短视频矩阵系统源码开发
人工智能·python·矩阵
网安INF1 小时前
RSA加密算法:非对称密码学的基石
java·开发语言·密码学
明月*清风1 小时前
c++ —— 内存管理
开发语言·c++
蔡蓝1 小时前
设计模式-观察着模式
java·开发语言·设计模式
Humbunklung1 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
笔记·python·学习·pyqt
一勺汤2 小时前
YOLO12 改进|融入 Mamba 架构:插入视觉状态空间模块 VSS Block 的硬核升级
yolo·计算机视觉·mamba·yolov12·yolo12·yolo12该机·yolo12 mamba
火车叼位2 小时前
使用 uv 工具在 Windows 系统快速下载安装与切换 Python
python
西北大程序猿2 小时前
单例模式与锁(死锁)
linux·开发语言·c++·单例模式