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