cv2.filter2d()opencv中的ddepth参数说明?
我试图平滑图片,但我不理解cv2.filter2d()的第四个参数,其中的值为-1。那么-1是做什么的,ddpeth是什么意思呢 您可以在中看到,cv2.filter2d()opencv中的ddepth参数说明?,opencv,Opencv,我试图平滑图片,但我不理解cv2.filter2d()的第四个参数,其中的值为-1。那么-1是做什么的,ddpeth是什么意思呢 您可以在中看到,ddepth代表“目的地深度”,即结果(目的地)图像的深度 如果使用-1,结果(目标)图像的深度将与输入(源)图像的深度相同。d深度 ddepth表示目标图像的所需深度 它包含有关图像中存储的数据类型的信息,可以是无符号字符(CV_8U)、有符号字符(CV_8S)、无符号短字符(CV_16U)等等 类型 对于类型,该类型的信息由两个值组合而成: 图像深
ddepth
代表“目的地深度”,即结果(目的地)图像的深度
如果使用-1
,结果(目标)图像的深度将与输入(源)图像的深度相同。d深度
ddepth
表示目标图像的所需深度
它包含有关图像中存储的数据类型的信息,可以是无符号字符(CV_8U
)、有符号字符(CV_8S
)、无符号短字符(CV_16U
)等等
类型
对于类型,该类型的信息由两个值组合而成:
图像深度+通道数
它可以是例如CV_8UC1
(等于CV_8U
)、CV_8UC2
、CV_8UC3
、CV_8SC1
(等于CV_8S
)等
进一步阅读
有关更多讨论,请参见以下两篇文章
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()
请阅读我读过的@Miki,我不明白为什么我会发布这个问题?如果你明白了,请解释一下。非常感谢。
cv::Mat src(3, 3, CV_8U3);
cv::Mat dst(3, 3, CV_16S3);
cv::Mat dst2(3, 3, CV_16F3);
cv::Mat kernel(3, 3, CV_8U, cv::Scalar(1));
cv::filter2D(src, dst, CV_16S, kernel); // valid
cv::filter2D(src, dst, CV_16F, kernel); // invalid