color-coded optical flow image
显示 更早的评论
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.


回答(1 个)
Image Analyst
2016-1-9
0 个投票
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 个评论
Maryam Butt
2016-1-9
Image Analyst
2016-1-9
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
2016-1-9
Image Analyst
2016-1-10
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
2016-1-10
Image Analyst
2016-1-10
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Tracking and Motion Estimation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!