У меня есть вопрос об использовании adaptiveThreshold
функция от OpenCV в C ++. (Вот это документация.)
void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
После прочтения Эта статья, Мне довольно ясно, как эту функцию можно использовать, чтобы найти хороший порог для изображений (представлен как Mat
объект в OpenVC).
Мой случай немного отличается тем, что я хотел бы использовать его только для vector
вместо Mat
, Так что в основном у меня есть vector
из double
значения, и мне нужно найти хороший порог, и мне было интересно, если есть простой способ адаптировать adaptiveThreshold
функция в этом отношении. Я экспериментировал с более статичными методами, чтобы создать порог, например, используя среднее значение или медиану, но в моем случае они не работают.
У кого-нибудь есть предложения как к этому подойти? Я предполагаю, что мне придется скорректировать src
а также dst
параметры и как-то передать мой вектор, но прямой подход к этому не сработал.
Создать cv::Mat
это оборачивает vector
, Соответствующий конструктор объявлен:
//! builds matrix from std::vector with or without copying the data
template<typename _Tp> explicit Mat(const vector<_Tp>& vec, bool copyData=false);
Так что вы должны быть в состоянии сделать:
std::vector<double> vec(10, 0.0); // your vector here
bool copyData = false;
cv::Mat M(vec, copyData); // default is not to copy data
Результирующий Mat
будет один столбец.