color-coded optical flow image
Ältere Kommentare anzeigen
Background: main task is segmentation and tracking of (multiple) objects in a video, i intend to use meanshift for segmentation to which LUV-color-coded optical flow image is to be used as input.
So i calculated optical flow and converted vertical and horizontal values to polar coordinates using cart2pol. Now used Image Analyst's colorwheel and used following code to obtain RGB-color-coded optical flow image.
%%accessing RGB color agains theta and rho
outDir='./output/';
load([outDir 'polarflow.mat']);
rgbflow=struct('rgb_flow',{});
for i=1:size(polarflow,2)
for row=1:size(polarflow(1).p_flow,1)
for col=1:size(polarflow(1).p_flow,2)
theta=polarflow(i).p_flow(row,col,1);
theta_in_degrees = radtodeg(theta);
theta_in_degrees = ceil(wrapTo360(theta_in_degrees));
rho=ceil(polarflow(i).p_flow(row,col,2));
% colour_row = ceil(size(rgb,1) * theta_in_degrees/359 + eps);
% colour = rgb(colour_row,:); %%these 2 lines return 1755 values, couldn't interpret
colour=rgb(theta_in_degrees,rho,:);
rgbflow(i).rgb_flow(row,col,1)=colour(:,:,1);
rgbflow(i).rgb_flow(row,col,2)=colour(:,:,2);
rgbflow(i).rgb_flow(row,col,3)=colour(:,:,3);
end
end
end
save([outDir 'rgbflow.mat'],'rgbflow');
Problem is only a portion of original image is left, much foreground information is lost. An image and result image is attached. Kindly let me know any tips.


Antworten (1)
Image Analyst
am 9 Jan. 2016
0 Stimmen
There are several color pickers in the File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/?search_submit=fileexchange&query=color+picker&term=color+picker
Or you can adapt my attached color wheel demo to use ginput() to let the user pick the color they want to use.

6 Kommentare
Maryam Butt
am 9 Jan. 2016
Image Analyst
am 9 Jan. 2016
You can get the row and column from ginput, something like
[x,y] = ginput(1);
row = round(y);
col = round(x);
theColor = rgbImage(row, col, :);
Maryam Butt
am 9 Jan. 2016
Image Analyst
am 10 Jan. 2016
I'm not sure what you're after with your latest edit, but if you want to track green blobs, see my attached demo.
Maryam Butt
am 10 Jan. 2016
Image Analyst
am 10 Jan. 2016
Usually they just use quiver to show arrows. If you want them in colors for different vector lengths, you'd have to look for code for that. I think I've seen it but I don't remember where.
Kategorien
Mehr zu Tracking and Motion Estimation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!