我有一個名爲「MyClass的」類,它返回「CV ::標」型的,我想這樣做:如何在OpenCV中
cv::Scalar myValue;
for (myValue > myClass (i,j))
....
但在「爲比較部分「行發出錯誤,說」沒有操作符>匹配這些操作數「。有人能幫助我嗎?謝謝。
我有一個名爲「MyClass的」類,它返回「CV ::標」型的,我想這樣做:如何在OpenCV中
cv::Scalar myValue;
for (myValue > myClass (i,j))
....
但在「爲比較部分「行發出錯誤,說」沒有操作符>匹配這些操作數「。有人能幫助我嗎?謝謝。
如果沒有運營商來比較兩個cv::Scalar
元素,你可以將其定義:
#include "OpenCVStuff.h"
// Custom operator to compare cv::Scalar class...
bool operator >(const cv::Scalar &a, const cv::Scalar &b)
{
bool Result = false;
// Do whatever you think a Scalar comparison must be.
return Result;
}
int main(int argc, char **argv)
{
cv::Scalar myValue;
// Assuming myClass (i,j) returns a cv::Scalar
for (myValue > myClass (i,j))
{
// Do something...
}
return 0;
}
這樣做,你可以定義路兩cv::Scalar
是而不用打擾cv::Scalar
本身。
作爲示例,我已將它放入main.cpp
中,但您可以在任何需要的位置定義運算符,只要在進行比較時可以看到該運算符即可。
非常感謝! –
標量是一個四元組類型的元素。您可以在這種結構中存儲任意數量的元素(雙精度型)。所以,你不能直接比較一個Scalar實例和int類型實例。
爲了完成之路的回答是:
如果你想比較標量的元素,你應該做的未來:
cv::Scalar scalar(myValue); //here you assign a value to the element (0,0)
for (scalar.val[0,0] > myClass (i,j)) // access the elment of Scalar
{
}
反正有使用標量,如果你只是想不點一個單一的價值。還要注意的是,你需要一個適當的for循環語句,比如
for(i = 0; i < 0; i++){}
我認爲你的意思是'scalar.val [0]'。 – misha
謝謝您的回答:) –
我不知道cv是否有與之相近的東西,但是你可以自由地用你需要的語義來定義你自己的東西。 – chris
問題是如何比較具有4個值的兩個元組,並且由您來定義一個標準。 – Sam
你能解釋一下嗎? –