Regex ИЛИ в блокноте ++

Да, в OpenCV это безопасно.


Внутренне функция, подобная:

void somefunction(InputArray _src, OutputArray _dst);

, сделает что-то вроде:

Mat src = _src.getMat();
_dst.create( src.size(), src.type() );
Mat dst = _dst.getMat();

// dst filled with values

Итак, если src и dst:

  • одно и то же изображение create фактически ничего не сделает, а модификации эффективно на месте . Некоторые функции могут clone отображать src внутри, если операция не может быть на месте (например, findConturs в OpenCV> 3.2), чтобы гарантировать правильное поведение.
  • разные изображения, create создайте новую матрицу dst без изменения src.

В документации указано, что это поведение по умолчанию не выполняется.

Примечательным примером является findContours, которые изменяют матрицу src. Вы справляетесь с этим, обычно проходя src.clone() во входе, так что изменяется только клонированная матрица, но не та, которую вы клонировали.

Из OpenCV 3.2, findContours не изменяет входное изображение .


Благодаря Фернандо Бертольди для рассмотрения ответа

30
задан mattytommo 20 April 2012 в 20:18
поделиться