CV :: UMAT的M2 =(M1 == V)的有效替换
efficient replacement for m2=(m1==v) for cv::UMat?
我得到了以下代码(示例(来创建一个使用cv:mat:
的蒙版int v;
cv::Mat m1; // being a submat
cv::Mat mask = (m1==v);
这些线源自Python原型
mask = np.where( m1[x1:x2,y1:y2]==v, 255, 0 );
在C 版本中,我想使用UMAT而不是MAT,因为这一行周围有更大的处理管道。可悲的是,在我看来,matexpressions(如上面的m1==v
(并未对opencv3.4.1中的cv :: umat受到欺骗。这是正确的吗?
在CV :: UMAT上有可用的操作,我可以有效地模仿mask=(m1==v)
以获得相同的掩码?
我当前的代码(从UMAT转换为MAT,即从Graphics Mem复制到Main Mem,然后进行CV :: MAT操作(不有效。
使用C 11,gcc5.4.0,opencv3.4.1
nb:问题不是关于Python和C 版本之间的掩码中可能不同的值。
正常指出,在这种情况下, cv::compare
是我的朋友:
// having some UMat m1 and some (let's say) double v
cv::UMat mask;
cv::compare( m1, cv::Scalar{v}, mask, cv::CMP_EQ );
相关文章:
- 模板参数替换失败,并且未完成隐式转换
- 欧拉项目#8答案是大以获得有效答案
- 调整大小后指向元素值的指针unordered_map有效?
- 如何用转义符替换字符串中的所有特殊字符
- 为什么是0;C++中的有效语句
- 最高有效数字侧的第N位
- GCC对可能有效的代码抛出init list生存期警告
- 有效地使用std::unordered_map来插入或增加键的值
- c++中O(n^(1/3))中一个数的除数的有效计数
- 使用无符号字符数组有效存储内存
- 自定义先决条件对移动分配运算符有效吗
- 仅当一个参数中未使用 std::function 时,模板函数替换才有效
- 关于读取有效 c++ 第 4 项(将非局部静态变量替换为局部静态变量)的问题
- 有没有更有效的方法来替换这些多个 IF 语句?
- CV :: UMAT的M2 =(M1 == V)的有效替换
- 如何有效地用不同的整数元素替换字符字符串的元素
- 如何在迭代unordered_set时有效地替换元素
- 字符串::替换在有效的迭代器上抛出 std::out_of_range
- 如何有效地替换C++中的德语变音符号
- 如何在不重新建立堆不变量的情况下有效地替换堆的顶部元素