python-2.7 - cv2.min的功能

标签 python-2.7 opencv computer-vision

我是计算机视觉和 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)

在哪里 目的地 是图像的源向量和目标向量。

我的具体问题是:

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

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

最佳答案

有人可以解释一下 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



由于对 r 和 g 都进行了两次评估,因此如何将值分配给 b ?

你可以这样分解:
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 个元素将是 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) ,并且您的 channel 的顺序被颠倒了。要获得 RGV 颜色空间,您需要执行以下操作:
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)

关于python-2.7 - cv2.min的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39889636/

相关文章:

python - 调用 cv2.findContours 解压的值太多

image-processing - 寻找低对比度边缘

machine-learning - 在PyTorch中使用DataLoaders进行k折交叉验证

python - 在python中生成15分钟时间间隔数组

c++ - 写入 Directshow 源过滤器

python - 重新排列节点 lxml 中的属性

java - 无法解析相应的 jni 函数 opencv Android

python - 如何提取图像中的白色区域

Python3 : Iterating a binary string turns character into integer

python - 分配给显式变量时如何忽略某些元组成员?