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)
相关推荐
艾伦~耶格尔32 分钟前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
yujkss1 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python
yzx9910131 小时前
小程序开发APP
开发语言·人工智能·python·yolo
飞翔的佩奇1 小时前
【完整源码+数据集+部署教程】二维码与查找模式检测系统源码和数据集:改进yolo11-CSwinTransformer
python·yolo·计算机视觉·数据集·yolo11·二维码与查找模式检测
大霞上仙1 小时前
实现自学习系统,输入excel文件,能学习后进行相应回答
python·学习·excel
啊阿狸不会拉杆1 小时前
《算法导论》第 32 章 - 字符串匹配
开发语言·c++·算法
Caven771 小时前
【pytorch】reshape的使用
pytorch·python
无规则ai1 小时前
动手学深度学习(pytorch版):第四章节—多层感知机(5)权重衰减
人工智能·pytorch·python·深度学习
qq_526099132 小时前
图像采集卡与工业相机:机器视觉“双剑合璧”的效能解析
图像处理·数码相机·计算机视觉
你知道网上冲浪吗3 小时前
【原创理论】Stochastic Coupled Dyadic System (SCDS):一个用于两性关系动力学建模的随机耦合系统框架
python·算法·数学建模·数值分析