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)
相关推荐
名字还没想好☜12 小时前
Go error 处理:errors.Is/As 与错误包装
开发语言·后端·golang·go·错误处理
红糖奶茶12 小时前
Python 中 while 循环计数异常的常见原因分析与正确搓搓
开发语言·python
Lucky_Turtle12 小时前
【论文写作】PDF图片不清晰,打印生成PDF空白大,PDF字体嵌入
开发语言·pdf·c#
lzqrzpt13 小时前
LED驱动电源行业知名厂家技术特点与市场格局梳理
python·物联网
csdndenglu13 小时前
Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据,无复杂要求时可替代VTK
开发语言·c++·图形渲染·3d渲染
byte轻骑兵13 小时前
【AVRCP】规范精讲[41]:AV/C指令帧解析,蓝牙遥控交互的底层语言
c语言·开发语言·人机交互·智能制造·avrcp
发光小北13 小时前
Bronze100系列plc Modbus及自由口通信案例
开发语言·php
AI科技星13 小时前
乖乖数学·全域超复数统一场论:五大核心门槛与全套标准定量数据
人工智能·python·算法·金融·全域数学
snow@li13 小时前
Java:后端项目会有一个类似前端node_modules的目录吗 / jar包在本地仓库 ~/.m2/repository 中按版本共存
java·开发语言·前端
ganbingfenxiang13 小时前
太原干冰定制
大数据·python