Live display Speed using matlab

1 visualización (últimos 30 días)
ahmed niri
ahmed niri el 5 de Mayo de 2017
I am using a Photometrics evolve camera and have had trouble with the speed display of the images as time gets bigger. I am using matlab with the CMMCore library. My initial thought when coming to this problem is the readout frequency of the camera and or the efficiency of my code. The purpose of my code is not to register any picture but just to display and then discard (right away). My code looks like follow:
while (handles.mmc.isSequenceRunning())
xlim([1 120]);%Identify the X axis
hold on;
i=i+1;
if (handles.mmc.getRemainingImageCount()> 0)
img1 = handles.mmc.getLastImage;%Recieve the image
% img1 = handles.mmc.popNextImage;
[pixelType] = pixel(handles.mmc);%Define the pixel type, 8or16 bits. In our case it is 16
[img1] = camprop(handles.mmc, img1,pixelType);%Properties needed by the camera
img = transpose(img1);%Transpose the matrix to get the right picture
%%%First signal
sig(xp) = img(handles.X1,handles.Y1); %Knows the x and y coordinated and plots the signal
sig(1)=img(handles.X1,handles.Y1); %Define the first value of sig
%%%Second signal
sig2(xp) = img(handles.X2,handles.Y2);%Knows the x and y coordinated and plots the signal
sig2(1)=img(handles.X2,handles.Y2);%Define the first value of sig
Y =[sig(xp),sig(xp-1)]; %Signal 1 interpolation
Y2 =[sig2(xp),sig2(xp-1)]; %Signal 1 interpolation
X = [xp , xp-1]; % X value of signal 1 and 2 which was set in the begining of the while loop
axes(handles.axes1); % First axes where we will draw the first signal
%%%Ploting of the first signal
%%%%%%White rectangle that updates the signal
if (xp < 120)
rectangle('Position',[xpm1 0 3 3000],'FaceColor','w','EdgeColor','w');
end
plot(X,Y);
hold on;
drawnow;
%%%Potting of the second signal
xlim([1 120]) %Defining the limit for the X axis
hold on
axes(handles.axes2);
%%%%%%White rectangle that updates the signal
if (xp < 120)
rectangle('Position',[xpm1 0 3 3000],'FaceColor','w','EdgeColor','w');
end
plot(X,Y2);
hold on;
drawnow;
xp = xp+1;
xpm1 = xpm1+1;
if (xp > 120)
xp = 2;
xpm1 = 1;
end
tt = tt+1;
end
handles.mmc.getImageBufferSize()
end
Thank you in advance

Respuestas (0)

Categorías

Más información sobre Computer Vision with Simulink en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by