point tracking
Hello! I have avi videos where persons are talking about something with about 30 blue-marked point on their faces. How can i put the coordinates of this points into files? image:
If you have blue marked points that are clearly (means that they are not a half pixel wide) visible, then you could actually do the following
Cheerz!
i have converted image to HSV and thresholded it. Now i have binary image where these blue points are white. Everything else is black. Now i have some problems: 1. What can i do with persons clothes(which could be the same colour as the points)? ROI? 2. May i assign contours to 64 points, calculate their centers and save into file in a real time?
image:
Nice result already. To continue this way I will answer your question again.
For clothes, you could define a region of interest, only focussing on the upper points, since you actually know where the persons head will be. This can be done by the following command : Mat face = image( Rect( xUpperLeft, yUpperLeft, width, heigth) )
Yes assign contours to 64 points, the processing should be pretty fast. The calculating of centers and saving to file, will take barely some milliseconds.
Go ahead! You will solve the problem :)
Good evening! I have assigned contours of points on the face using cvFindContours(i have only points on the face, i used ROI to delete clothes). And now i have 2 questions. Does the order of the contour points save from frame to frame? How to move from contour to contour? Then i am going to use Moments to calculate center points.
What you have to do is store the points for each frame manually in an object if you want to be absolutely sure that you have the same order. You could do it by storing them based on the x or y location and in raising order for example. If not, it is not guaranteed that indexes will always point at the same point, since it is recalculated for each frame.
I have done function that calculates center points of contours using moments. But now i have 2 last troubles. 1. What should i do with persons eyes? Sometimes they detects with my program as blue-marked points. I've tried changing range values of HSV but it doesn't give a result. 2. The only one of blue-marked points disappears on some frames. How can i correct this?
image(1 eye detected):
image(2 eyes detected):
Basically, one single think about eyes versus dots, is that the points of the eyes are not in every single frame. What you could do is check if in two following frames, the dots are still in the neighbourhood (euclidean distance thresholding) OR you could define what an eye blob is, which is basically a blob that has a larger distance to the closest other points than all the others. Also this can be done by thresholding or looking for an amount of blackpixels around it :)
Asked: 2013-03-09 06:48:51 -0600
Seen: 2,058 times
Last updated: Apr 06 '13
Please post an image of the video. The initialization process has to be automatic or it could be manual? The camera is moving or only the people faces?