Я проверил использование cv::noArray()
в коде OpenCV и есть что-то вроде этого:
if (&argument == &noArray())
return "InputArrayOfArrays: noArray()";
в вашем случае это будет, вероятно,:
void doStuff(cv::InputArray candidatesMap = cv::noArray())
{
// initialize candidatesMap if not given
if(&candidatesMap == &cv::noArray())
{
candidatesMap = createCandidatesMap();
}
// ... more code using candidatesMap
}
Но даже если candidatesMap
не равно noArray
, это не значит, что этот вход не пустой. Так что стоит также проверить его размер.
@ MichałWalenciak Сказал, что это сравнение не сработает. Так что вы можете проверить это другими способами. Чтобы проверить, действительно ли candidatesMap
, вы можете позвонить candidatesMap.getObj()
и проверить, действителен ли этот указатель.