gpt4 book ai didi

c++ - 从两个 cv::Mat 和一个掩码构造 cv::Mat

转载 作者:行者123 更新时间:2023-11-28 02:13:19 25 4
gpt4 key购买 nike

我有两个(相同大小,相同类型)cv:Mat 让我们称它们为 A,B。我还有另一个 cv::Mat,它是一个掩码(0 和 1 值或其他值,0 和 255 也适用)让我们称它为 M

我需要构造一个新的 cv::Mat (C),它具有与 A 相同的类型和大小>BC cv::Mat 的值如下:

C(x,y) = A(x,y) if  M(x,y)==1
C(x,y) = B(x,y) if M(x,y)==0

我现在正在做的简单解决方案是迭代 M 并分支其值并将正确的值分配给 C。但是,有更好的方法吗?准备好并优化 OpenCV 了吗?

最佳答案

我建议你分两步来做:

cv::Mat C(A.rows, A.cols, A.type());
// copy A in C where M != 0
A.copyTo(C, M);
// copy B in C where M == 0
B.copyTo(C, 255 - M);

编辑:

Micka 是否指出了更好的性能

// start from B
cv::Mat C = B.clone();

// copy B in C where M == 0
A.copyTo(C, M);

关于c++ - 从两个 cv::Mat 和一个掩码构造 cv::Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34920015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com