多条件C++ < C++中的最佳条件是什么?< /P>

多条件C++ < C++中的最佳条件是什么?< /P>,c++,opencv,if-statement,conditional-statements,C++,Opencv,If Statement,Conditional Statements,我试着编写代码,但它看起来太复杂了,而且在编译时有错误 if(alpha <= hsv_image[2].at<float>(i,j)/hsv_bkg[2].at<float>(i,j)) { D = min(...); if( abs(hs

我试着编写代码,但它看起来太复杂了,而且在编译时有错误

                     if(alpha <= hsv_image[2].at<float>(i,j)/hsv_bkg[2].at<float>(i,j))
                                {
                         D = min(...);
                                    if( abs(hsv_image[1].at<uchar>(i,j)-hsv_bkg[1].at<uchar>(i,j))<=T_value && D<=T_value){
                                        ...

                                    }
                                }
                }

据我所见,您正在使用OpenCV。我现在自己也在学习,我不是专家,但我看到你们正在一点一点地做操作。这在OpenCV中导致了一个巨大的性能问题。你需要一次对整个画面进行操作

例如,你的方程式可以这样写在OpenCV中可能有bug,它很快就从我的脑海中消失了,我正在学习自己:

Mat mask1, mask2, sub, res;
divide(IV, BV, mask1);
inRange(mask1, Scalar(alpha), Scalar(beta), mask2);
abs(IS - BS, sub);
auto D = min(...);
bitwise_and(sub, D, res, mask2);

从我读到的,你可以先计算三个内部条件:

auto val1 = IVt(x,y) / BVt(x,y);
bool cond1 = alpha <= val1 && val1 <= beta;

auto val2 = ISt(x,y) - BSt(x,y);
bool cond2 = val2 <= Ts;

bool cond3 = Dh <= Th;

... 语法无效。请显示一个带有再现您的问题的代码以及确切的错误消息∧ 图中的符号代表什么?它真的是xor还是a?这是和运算符,也是两个不等式的&&不仅在编程中处理复杂性的一般方法是划分界限,或者在编程中它是中心原则之一。在这种特殊情况下:将各种表达式分配给适当命名的变量,并执行最顶层的计算以及与这些变量的比较。必要时添加更多中间层。注意变量名:它们可能是理解一个程序最重要的贡献。他使用的是openCV,但不正确。他需要对代码进行优化,而不是一个像素一个像素地对整个图像进行优化。此外,这些不是异或符号吗?@mreff555不,它们是逻辑连接符号——也就是符号。
bool result = cond1 && cond2 && cond3;