我正在尝试恢复和增强几张照片上的图像细节。我试过使用 cv2.filter2D()
和一些简单核增加锐度以展现更多细节。
我还试过使用边缘检测核。
[-1 -1 -1]
[-1 9 -1]
[-1 -1 -1]
以及锐化卷积核
[ 0 -1 0]
[-1 5 -1]
[ 0 -1 0]
但是结果看起来过于粗糙和不自然。为了消除噪点,我尝试了模糊技术,例如
cv2.medianBlur()
和cv2.GaussianBlur()
,但是结果并不理想。图片有朦胧的背景或者很暗,这使得特征很难辨认。是否有更好的方法来突出更多的细节,特别是在背景中?欢迎使用Python或C++。输入图片: 目前的结果:
import numpy as np
import cv2
img = cv2.imread('people.jpg')
grayscale = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# edge_kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharpen_kernel = np.array([[0,-1,0], [-1,5,-1], [0,-1,0]])
img = cv2.filter2D(grayscale, -1, sharpen_kernel)
# Smooth out image
# blur = cv2.medianBlur(img, 3)
blur = cv2.GaussianBlur(img, (3,3), 0)
cv2.imshow('img',img)
cv2.imwrite('img.png',img)
cv2.imshow('blur',blur)
cv2.waitKey(0)