cv2.min的函数

The function of cv2.min

我是计算机视觉和OpenCV的新手,所以请注意不成熟的语言。谁能给我解释一下 cv2.min 的功能是什么?

我从 OpenCV 书中获得了从 BGR 到 RGV(红色、绿色、值)的代码:

   b, g, r = cv2.split(src)
   cv2.min(b, g, b)
   cv2.min(b, r, b)
   cv2.merge((b, g, r), dst)

其中 srcdst 是图像的源和目标向量。

我的具体问题是:

在两次迭代中,cv2.min 对 b 做了什么?如何将值分配给 b 因为它被评估两次 rg ?

请让我知道这段代码中发生了什么。

谁能解释一下cv2.min的功能是什么?

看看 doc:

Python: cv2.min(src1, src2[, dst]) → dst

The functions min calculate the per-element minimum of two arrays, or array and scalar


如何为 b 赋值,因为它对 r 和 g 进行了两次评估?

你可以这样分解:

cv2.min(b, g, b1)  # b1 contains the minimum values between b and g
cv2.min(b1, r, b2) # b2 contains the minimum values between b1 and r
b = b2

在两次迭代中,cv2.min 对 b 做了什么?

b的第i-th个元素将是b(i), g(i), r(i)中的最小元素:

# Pseudocode
for each row
    for each col
        b(row, col) = min( b(row, col), g(row, col), r(row, col) )

然而,这可能是不正确的,因为 HSV 中的 V 值计算为 max(R,G,B),并且通道的顺序是颠倒的。要获得 RGV 颜色 space 你需要这样做:

b, g, r = cv2.split(src)
cv2.max(b, g, b)
cv2.max(b, r, b) 

# now 'b' contains the 'v = max(r,g,b)'
cv2.merge((r, g, b), dst)