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)
相关推荐
浪客川2 分钟前
【百例RUST - 009】容器 Vector
开发语言·rpc·rust
@不误正业2 分钟前
大模型注意力机制源码解析-从MQA到MLA全链路演进与PyTorch实现
人工智能·pytorch·python
weixin_408717773 分钟前
CSS如何优化大型项目样式_使用SASS预处理器提升开发效率
jvm·数据库·python
2301_813599557 分钟前
CSS如何解决CSS引入后的样式覆盖_理解优先级原则避免重写
jvm·数据库·python
环流_17 分钟前
多线程3(线程安全问题及解决方案)
java·开发语言
Li emily17 分钟前
外汇api接口实践:实时汇率与历史数据获取
人工智能·python·api·fastapi
weixin_4087177722 分钟前
PHP8.1新特性对AI开发帮助_JIT编译优势【解答】
jvm·数据库·python
Ares-Wang24 分钟前
flask》》多线程并发数据安全问题 threading.local werkzeug.local.Local
后端·python·flask
2401_8716965228 分钟前
golang如何实现Trie前缀树_golang Trie前缀树实现解析
jvm·数据库·python
3DVisionary29 分钟前
升维洞察:DIC全场视觉检测如何重塑力学测试的“时空秩序”
人工智能·计算机视觉·视觉检测·动态测量·dic技术·xtdic·结构疲劳演化