【发布时间】:2019-06-26 00:19:24
【问题描述】:
我开始学习 C++ 中的 OpenCV。我对 OpenCV 的 python 版本有相当的工作知识,我想知道以下内容在 python 中会翻译成什么?我试图理解 cv2.warpPerspective() 函数的数学运算。我那小小的蟒蛇大脑无法将它的头包裹起来。
w = w != 0.0f ? 1.f / w : 0.0f
到目前为止,我从中得到的只是如果“w”不等于“0”,那么它将等于“1/w”,否则“w”将等于“0”
对吗?
【问题讨论】:
-
?:是一个三元条件运算符,意思是如果 cond (w != 0) 则返回第二个。参数。 (1.f / w) 否则第三。参数 (0.0f)。请在谷歌上搜索 C++ 条件运算符以查找更多信息。我相信 Python 会是1.0 / w if w != 0.0 else 0.0。 -
如果 'w' 不等于 '0' 那么它将等于 '1/w' 否则 'w' 将等于 '0' — 好吧,看来你已经有了你的答案。您的实际问题是什么?
-
相当于
if (w != 0.0f) { w = 1.f / w; } else { w = 0.0f; } -
感谢您的回复,我查看了 docs.microsoft.com/en-us/windows-hardware/drivers/debugger/… 和其他来源,但我不确定如何将所有部分组合到这一行中。
-
@StackDanny 更不用说
if语句比表达式清晰得多。更清晰的代码意味着更容易理解它和它的作用,也更容易维护。条件表达式经常被误用为过早的优化,认为编译器不会生成最佳代码。
标签: c++