Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 组合两个矩阵,保留其元素值_C++_Opencv_Image Processing_Matrix - Fatal编程技术网

C++ 组合两个矩阵,保留其元素值

C++ 组合两个矩阵,保留其元素值,c++,opencv,image-processing,matrix,C++,Opencv,Image Processing,Matrix,我正在C++中使用OpenCV。我有两个单通道矩阵,一个值为0或2,另一个值为0或3。我想将两者结合起来用作grabCut函数中的遮罩 我希望合并它们,以便我的新组合矩阵在适当的情况下包含0、2或3。我尝试了按位OR运算,但这似乎只给出了一个值为0或255的矩阵,其中3或2是唯一的 combined = (greenMaskForGrabcut == 3) | (redMaskForGrabcut == 2); 如何为每个元素保留3或2个值?谢谢OpenCV有一个专门针对数组的按位\u或操作:

我正在
C++
中使用
OpenCV
。我有两个单通道矩阵,一个值为0或2,另一个值为0或3。我想将两者结合起来用作
grabCut
函数中的遮罩

我希望合并它们,以便我的新组合矩阵在适当的情况下包含0、2或3。我尝试了按位OR运算,但这似乎只给出了一个值为0或255的矩阵,其中3或2是唯一的

combined = (greenMaskForGrabcut == 3) | (redMaskForGrabcut == 2);

如何为每个元素保留3或2个值?谢谢

OpenCV有一个专门针对数组的按位\u或操作:


void bitwise_或(输入阵列src1、输入阵列src2、输出阵列dst、输入阵列掩码=noArray())

如果两个矩阵都包含0,则需要0;如果矩阵-1包含2且矩阵-2包含0,则需要2;如果矩阵-1包含0且矩阵-2包含3,则需要3。但是,当矩阵1包含2,而另一个包含3时,您希望组合矩阵包含什么?2和3的值永远不会重叠,因为它取自用户绘制的遮罩,因此像素只能是2或3。因此,在两个矩阵都包含0以外的值的情况下,技术上不可能。不确定C++是否合适?Xcode给了我一个错误“从'cv::MatExpr'到'bool'没有可行的转换”