python - Python Bitwise OR
问题描述
I have the following C++ code:
// 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);
which I want to translate to Python. I am done with almost every part but not the bitwise OR mask part.
I tried the following:
mask = np.logical_or.reduce((mask == blue, mask == green, mask == red, mask == white, mask == silver))
however it did not work for me.
What's the Python equivalent of this operation?
解决方案
您的 C++ 代码中没有逻辑或使用,只有按位或。所以要在 python 中做同样的事情,你应该使用 bitwise or there (|
就像在 C++ 中一样),而不是逻辑。
所以
mask = blue|green|red|white|silver|black;
在 C++ 中应该等同于
mask = blue|green|red|white|silver|black
在蟒蛇。
推荐阅读
- c++ - 为什么 std::string::max_size 的值“奇怪”?
- python - 如何修复 Python 错误:AttributeError: type object X has no attribute Y
- android - 当 html 有特殊字符时,Android WebView 无法执行 Javascript ✓
- vuejs2 - vuetify组件的v-select文本如何居中对齐
- java - 如何从 java 调用 MSSQL 存储过程
- python - chi2cdf上python
- javascript - 有没有办法在 JavaScript 中只操作时间值?
- html - 当我的 TR 没有填充任何 TD 或 TH 标签时,为什么我的文本在我的表格内?
- jsf - h:inputHidden 未在命令按钮上更新
- python - .coveragerc 无法找到我想省略的文件