0

我对 RGB 颜色向量的理解是它有 3 个分量,例如 [100, 100, 100]。但是,从文档sr – The color window radius中, Python 函数中的参数cv2.pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]])接受一个 int。

颜色半径究竟是什么意思?我还想了解最小值和最大值,以及单位的含义。

4

1 回答 1

3

根据我在文档中对算法的描述中读到的内容,sr是需要邻居识别的算法的一部分的参数。

您可能想回顾一下您对均值偏移算法的理解,但在某个给定像素 (X,Y) 的某个点上,您需要找到它的邻居。虽然通常,我们将邻居视为空间邻居,即在空间上接近我们正在考虑的像素 (||(X,Y)-(x,y)||< 某个半径,X,Y 是考虑的像素位置x,y 是潜在的邻居位置),这里的算法还考虑了“颜色”的接近性,如以下行所示:

考虑联合空间-颜色超空间中的像素 (X,Y) 邻域:

(x,y): X- sp < x < X + sp , Y- sp < y < Y+ sp, ||(R,G,B)-(r,g,b)|| <sr

这意味着要被视为邻居,像素需要在空间上接近并且与所考虑的像素具有接近的颜色。您使用 设置此接近度条件sr,就像您使用 设置所需的空间接近度一样sp。尝试一些值。这取决于算法对 || 使用的定义。规范,可能类似于 ||(R,G,B)-(r,g,b)|| = sqrt((Rr)**2+(Gg)**2+(Bb)**2)

于 2017-01-10T08:37:04.737 回答