ordfilt2: поиск требует изменения размера

Я хочу сгенерировать код на С ++ из следующей функции Matlab (определение угла Харриса), которая обнаруживает углы на изображении. Мое ограничение заключается в том, что мне нужно сгенерировать статическую библиотеку на C ++ без поддержки переменного размера.
Итак, я отключил поддержку переменных размеров из настроек, а также выбрал целевую платформу в качестве неопределенного 32-битного процессора.
Таким образом, я смогу использовать его в Vivado HLS для проекта FPGA.

Однако, когда я генерирую код, строка, содержащая ordfilt2 Функция выдает ошибку, НАЙТИ требует переменного размера.

Пожалуйста, помогите мне, если есть решение этой проблемы. Я видел похожий вопрос, размещенный здесь Ошибка Matlab "Найти требует переменной размера" . Но я не уверен, как это относится к моему делу. Спасибо.

Вот код:

function [cim] = harris(im , thresh)

dx = [-1 0 1; -1 0 1; -1 0 1]; % Derivative masks
dy = dx';

Ix = conv2(im, dx, 'same');    % Image derivatives
Iy = conv2(im, dy, 'same');

% Generate Gaussian filter of size 6*sigma (+/- 3sigma) and of
% minimum size 1x1.
sigma = 1.5;
g = fspecial('gaussian',max(1,fix(6*sigma)), sigma);

Ix2 = conv2(Ix.^2, g, 'same'); % Smoothed squared image derivatives
Iy2 = conv2(Iy.^2, g, 'same');
Ixy = conv2(Ix.*Iy, g, 'same');

cim = (Ix2.*Iy2 - Ixy.^2)./(Ix2 + Iy2 + eps); % Harris corner measure

% Extract local maxima by performing a grey scale morphological
% dilation and then finding points in the corner strength image that
% match the dilated image and are also greater than the threshold.

radius = 1.5;
sze = 2*radius+1;                   % Size of mask.mx = ordfilt2(cim,sze^2,ones(sze)); % Grey-scale dilate.

cim = (cim==mx)&(cim>thresh);       % Find maxima.end

И здесь's the error

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]