代码之家  ›  专栏  ›  技术社区  ›  Schütze

Python按位或

  •  0
  • Schütze  · 技术社区  · 6 年前

    我有以下C++代码:

    // Load image from vector
            cv::Mat image = imread(filenames[i]);
    
            //  option = black 
            if (arg == "black" | arg == "all") 
                {
    
                // Extracting colors - BGR (black backround)
                // Blue
                inRange(image, Scalar(190, 0, 0), Scalar(255, 50, 50), blue);
                // Green
                inRange(image, Scalar(0, 190, 0), Scalar(50, 255, 50), green);
                // Red
                inRange(image, Scalar(0, 0, 190), Scalar(50, 50, 255), red);
                // White
                inRange(image, Scalar(235, 235, 235), Scalar(255, 255, 255), white);
                // Silver
                inRange(image, Scalar(180, 180, 190), Scalar(200, 200, 220), silver);           
    
                // bitwise OR mask
                mask = blue|green|red|white|silver;
    
                }
    
            //  option = wooden 
            else
                {
    
                // Extracting colors - BGR (wooden backround)
                // Blue
                inRange(image, Scalar(190, 0, 0), Scalar(255, 50, 50), blue);
                // Green
                inRange(image, Scalar(0, 190, 0), Scalar(50, 255, 50), green);
                // Red
                inRange(image, Scalar(0, 0, 190), Scalar(50, 50, 255), red);
                // White
                inRange(image, Scalar(235, 235, 235), Scalar(255, 255, 255), white);
                // Silver
                inRange(image, Scalar(190, 190, 200), Scalar(220, 220, 230), silver);
                // Black
                inRange(image, Scalar(0, 0, 0), Scalar(40, 40, 40), black);
    
    
                // bitwise OR mask
                mask = blue|green|red|white|silver|black;
    
    
                }
    
    
    
            // Store mask points into a vector
            vector<Point> pts;
            findNonZero(mask, pts);
    

    我想把它翻译成Python。我几乎完成了每个部分,但没有按位或掩码部分。

    我尝试了以下方法:

    mask = np.logical_or.reduce((mask == blue, mask == green, mask == red, mask == white, mask == silver))
    

    这个操作的Python等价物是什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Zinki    6 年前

    | ,就像C++一样,不是逻辑的。

            mask = blue|green|red|white|silver|black;
    

            mask = blue|green|red|white|silver|black
    

    在python中。