【问题标题】:The function of cv2.mincv2.min的功能
【发布时间】:2017-02-14 19:45:51
【问题描述】:

我是计算机视觉和 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 做了什么?由于 rb >g ?

请告诉我这段代码发生了什么。

【问题讨论】:

    标签: python-2.7 opencv computer-vision


    【解决方案1】:

    谁能解释一下 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)
    

    【讨论】:

    • 我希望我能投票给答案。解释得很好。感谢您抽出一些时间来解释。
    猜你喜欢
    • 1970-01-01
    • 2019-09-28
    • 2017-03-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多