В настоящее время я пишу код в matlab для анализа оптического потока в ядрах выщелачивания, и по какой-то причине всякий раз, когда я запускаю это, он возвращает странные сложные функции. Я не уверен, откуда они родом, и мне хотелось бы помочь в этом.Matlab and Comp Number Computing
function [opticalFlow] = opticalflowanalysis(handles,hOpticalflow)
videoReader = vision.VideoFileReader('jun07_0165_segment8to12_20.avi','ImageColorSpace','Intensity','VideoOutputDataType','single');
converter = vision.ImageDataTypeConverter;
opticalFlow = vision.OpticalFlow('OutputValue', 'Horizontal and vertical components in complex form','ReferenceFrameDelay', 6);
shapeInserter = vision.ShapeInserter('Shape','Lines','BorderColor','Custom', 'CustomBorderColor', 255);
videoPlayer = vision.VideoPlayer('Name','Motion Vector');
%Convert the image to single precision, then compute optical flow for the video. Generate coordinate points and draw lines to indicate flow.
i=0;
mm = ones(1080,1920);
%Display results.
while ~isDone(videoReader)
frame = step(videoReader);
im = step(converter, frame);
of = step(opticalFlow, im); %always complex number
aa = size(of)
lines = videooptflowlines(of, 5); %complex number only sometimes - when lines appear?
bb = size(lines)
x = i+ 1;
if(x==2)
mm = of;
end
% show diff bw of and lines matrices
if (x == 2)||(x == 10)
for j=1:1:1080 %gives j = [1 2 ... 720]
for k=1:1:1920 %gives k = [1 2 ... 1280]
of(j,k)
lines(j,k)
if(of(j,k) ~= lines(j,k))
disp(['of[',num2str(j),',',num2str(k),'] = ', num2str(of(j,k)), '...', 'lines[',num2str(j),',',num2str(k),'] = ', num2str(lines(j,k))])
end
end
end
end
if ~isempty(lines)
out = step(shapeInserter, im, lines);
step(videoPlayer, out);
end
end
%Close the video reader and player ,
%handles.output = hObject;
release(videoPlayer);
release(videoReader);
mm
возвращает:
aa =
1080 1920
bb =
36465 4
Куда переменные из бб взялось?
Спасибо, Jacob
Вы говорите, что переменная 'lines' иногда сложна, но этого не должно быть? Глядя на содержимое 'videooptflowlines' (' edit videooptflowlines' в командном окне) в R2012b, я не вижу, как он мог когда-либо возвращать сложные значения. – horchler
Насколько я могу судить, этот вопрос фактически не имеет ничего общего с комплексными числами. Я думаю, что название и теги должны быть отредактированы, чтобы отразить это, но хотелось бы получить дополнительные разъяснения от OP до того, как продолжить редактирование. – tmpearce