Примеры преобразования Matlab в OpenCV

Время от времени мне приходится переносить некоторый код Matlab в OpenCV.

Почти всегда есть способ сделать это и соответствующую функцию в OpenCV. Тем не менее его не всегда легко найти.

Поэтому я хотел бы начать это резюме, чтобы найти и собрать некоторые эквиваленты между Matlab и OpenCV.

Я использую функцию Matlab как заголовок и добавляю ее описание из справки Matlab. Впоследствии оценивается пример OpenCV или ссылки на решения.

Ответ 1

Repmat

Репликация и разбиение массива. B = repmat (A, M, N) создает большую матрицу B, состоящую из M-на-N разбиения копий A. Размер B - [размер (A, 1) * M, размер (A, 2) * N]. Заявление repmat (A, N) создает черепицу N-by-N.

B = повторить (A, M, N)

Документы OpenCV

Найти

Найти индексы ненулевых элементов. я = find (X) возвращает линейные индексы, соответствующие ненулевым элементам массива X. X может быть логическим выражением. Используйте IND2SUB (SIZE (X), I) для вычисления нескольких индексов из линейных индексов I.

Подобно найденному Matlab

conv2

Двумерная свертка. C = conv2 (A, B) выполняет двумерную свертку матриц A и B. Если [ma, na] = размер (A), [mb, nb] = размер (B) и [mc, nc] = (C), то mc = max ([ma + mb-1, ma, mb]) и nc = max ([na + nb-1, na, nb]).

Аналогично Conv2

Imagesc

Масштабировать данные и отображать их как изображение. imagesc (...) совпадает с IMAGE (...), за исключением того, что данные масштабируются для использования полной цветовой карты.

SO Imagesc

Imfilter

N-D фильтрация многомерных изображений. B = imfilter (A, H) фильтрует многомерный массив A с многомерным фильтром H. A может быть логическим или может быть несравненным числовым массивом любого класса и измерения. Результат, B, имеет тот же размер и класс, что и A.

SO Imfilter

Imregionalmax

Региональные максимумы. BW = imregionalmax (I) вычисляет региональные максимумы I. imregionalmax возвращает двоичное изображение, BW, того же размера, что и I, который идентифицирует местоположения региональных максимумов в I. В BW пиксели, которые установлены в 1, идентифицируют региональные максимумы; все остальные пиксели установлены в 0.

SO Imregionalmax

Ordfilt2

2-D порядок-статистическая фильтрация. B = ordfilt2 (A, ORDER, DOMAIN) заменяет каждый элемент в на ORDER-й элемент в отсортированном наборе соседей, заданных ненулевыми элементами в DOMAIN.

SO Ordfilt2

Roipoly

Выберите интересующую полигональную область. Используйте roipoly для выбора многоугольной области, представляющей интерес для изображения. roipoly возвращает двоичное изображение, которое вы можете использовать в качестве маски для маскированной фильтрации.

SO Roipoly

Градиент

Приблизительный градиент. [FX, FY] = градиент (F) возвращает числовой градиент матрицы F. FX соответствует dF/dx, разницам в x (горизонтальном) направлении. FY соответствует dF/dy, разницам в y (вертикальном) направлении. Расстояние между точками в каждом направлении считается равным единице. Когда F - вектор, DF = градиент (F) является 1-D градиентом.

SO Gradient

Sub2Ind

Линейный индекс от нескольких индексов. sub2ind используется для определения эквивалентного единственного индекса, соответствующего заданному набору значений индекса.

SO sub2ind

оператор обратной косой черты или mldivide

решает систему линейных уравнений A*x = B. Матрицы A и B должны иметь одинаковое количество строк.

cv:: решить