2017-04-13 655 views
-1
import cv2 
import numpy as np 
from matplotlib import pyplot as plt 

img = cv2.imread('logo.png') 

kernel = np.ones((5, 5), np.float32)/25 
dst = cv2.filter2D(img, -1, kernel) 
plt.subplot(121), plt.imshow(img), plt.title('Original') 
plt.xticks([]), plt.yticks([]) 
plt.subplot(122), plt.imshow(dst), plt.title('Averaging') 
plt.xticks([]), plt.yticks([]) 
plt.show() 

我正在尝试平滑图片,我不明白cv2.filter2d()的值为-1的ddepth参数。那么-1做什么以及ddpeth是什么意思?cv2.filter2d()opencv中ddepth参数的说明?

+0

请阅读[DOC](http://docs.opencv.org/master/d4/d86/group__imgproc__filter.html#ga27c049795ce870216ddfb366086b5a04) – Miki

+0

@Miki我阅读,我不明白我为什么张贴了这个问题?请解释你是否明白。谢谢 。 – npkp

回答

0

您可以在doc中看到ddepth代表“目标深度”,它是结果(目标)图像的深度。

如果您使用-1,结果(目标)图像将具有与输入(源)图像相同的深度。

0

ddepth

ddepth意味着目标图像的期望深度

它具有关于什么种存储的图像中的数据,

并且可以是无符号字符(CV_8U),符号字符信息(CV_8S),无符号短(CV_16U),等等...

至于类型,类型具有信息由2个值组合而成:图像深度+通道数量。

它可以是例如CV_8UC1(其等于CV_8U),CV_8UC2,CV_8UC3,CV_8SC1(其等于CV_8S)等

进一步阅读

有关详细的讨论中,可以发现在以下两篇文章