【问题标题】:Python OpenCV - Canny borders detectionPython OpenCV - Canny 边界检测
【发布时间】:2020-07-22 22:21:08
【问题描述】:

我正在尝试提取样本的边界(见下图)。它和空气之间的梯度似乎很重要,所以我尝试使用 OpenCV Canny 函数,但结果并不令人满意(第二个图)......我该如何改善结果?

你可以在这里找到图片:https://filesender.renater.fr/?s=download&token=887799f6-f580-4579-8f75-148be4270cb0

import numpy as np
import cv2
from scipy import signal

median_optic_decentre = cv2.imread('median_plot.tiff',0)

edges = cv2.Canny(median_optic_decentre,10,60,apertureSize = 3)

【问题讨论】:

    标签: python opencv feature-extraction canny-operator


    【解决方案1】:

    另一种获取边的方法是使用拉普拉斯算子(在 OpenCV 文档here 中进行了描述)。如果您应用拉普拉斯算子后跟一些morphological operations,特别是morphological opening,结果看起来会好一些(如果我正确理解您的问题):

    import cv2
    import matplotlib.pyplot as plt
    
    
    img = cv2.imread('median_plot.tiff')
    laplacian = cv2.Laplacian(img,cv2.CV_64F)
    S = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
    morph_opened_laplacian = cv2.dilate(cv2.erode(laplacian, S), S)
    plt.subplot(1,3,1)
    plt.gray()
    plt.title("Original")
    plt.imshow(img)
    plt.subplot(1,3,2)
    plt.title("Laplacian")
    plt.imshow(laplacian)
    plt.subplot(1,3,3)
    plt.title("Opened Laplacian")
    plt.imshow(morph_opened_laplacian)
    plt.show()
    

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多