我是计算机视觉和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)
其中 src 和 dst 是图片的源和目标向量。
我的具体问题是:
在两次迭代中,cv2.min对 b 做了什么?如何将值分配给 b ,因为 r 和< strong> g ?
请告诉我此代码中发生了什么。
答案 0 :(得分:2)
有人可以解释一下cv2.min的功能是什么吗?
查看doc:
Python:
cv2.min(src1, src2[, dst]) → dst
函数
min
计算每个元素最小值的两个数组,或数组和标量
如何将值分配给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色彩空间,您需要这样做:
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)