Python 在模糊图像中执行边缘检测

Python 在模糊图像中执行边缘检测,python,opencv,image-processing,edge-detection,Python,Opencv,Image Processing,Edge Detection,我正在做一项任务,要求我: 用手机(或照相机)拍摄(模糊的)图像,然后将其传送到 你的电脑。执行一些基本的图像分析步骤以增强 图片: a) 直方图均衡化(带注释和绘图) b) 通过应用合适的 滤波器(在空间/频率场上)并用不同的 选择并提供评论 c) 使用一种(或多种)技术进行边缘检测 我设法完成了所有三项任务(对于c我使用了Canny边缘检测)。我的问题是,任务中的去模糊部分无法生成足够好的图像,无法用于边缘检测: 这是代码: # Task a equ = cv2.equalizeHist(g

我正在做一项任务,要求我:

用手机(或照相机)拍摄(模糊的)图像,然后将其传送到 你的电脑。执行一些基本的图像分析步骤以增强 图片:

a) 直方图均衡化(带注释和绘图)

b) 通过应用合适的 滤波器(在空间/频率场上)并用不同的 选择并提供评论

c) 使用一种(或多种)技术进行边缘检测

我设法完成了所有三项任务(对于
c
我使用了Canny边缘检测)。我的问题是,任务中的去模糊部分无法生成足够好的图像,无法用于边缘检测:

这是代码:

# Task a
equ = cv2.equalizeHist(gray) 

# Task b (attempt #1)
kernel = np.array([[-1,-1,-1], [-1,50,-1], [-1,-1,-1]])
im = cv2.filter2D(equ, -1, kernel)

# Task b (attempt #2)
psf = np.ones((5, 5)) / 25
equ = convolve2d(equ, psf, 'same')
im, _ = restoration.unsupervised_wiener(equ, psf)

# Task c
equCopy = np.uint8(im)
edges = cv2.Canny(equCopy,300,500)
这是均衡图像:

这些是产出:

B部分:

尝试#1:

尝试#2(取自)(但不明白为什么它会这样输出):

C部分:


这是我能从如此模糊的图像中得到的最好的结果,还是有其他方法?有谁能帮我修复我第二次尝试分离
b

背景严重模糊,几乎无法恢复。尝试使用各种大小的高斯psf进行监督去模糊。并在均衡前完成。可能重复的