Python OpenCV Canny边界检测

2024-05-23 21:05:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图提取一个样本的边界(参见下图)。它和空气之间的梯度似乎很重要,所以我尝试使用OpenCV Canny函数,但结果并不令人满意(第二个图)。。。我怎样才能提高成绩

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

enter image description here

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)

Tags: 函数httpsimport图片cv2opencv空气边界
1条回答
网友
1楼 · 发布于 2024-05-23 21:05:49

获取边的另一种方法是使用拉普拉斯算子(在OpenCV文档here中描述)。如果应用Laplacian运算符,后跟一些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()

输出:

enter image description here

相关问题 更多 >