Optical Flow DX11 GPU
|Date:||16 Jan, 2014|
its simply copied from foo | andrew benson
vers. 2 --- adapted to name conventions
Optical flow solution on GPU.
i have x and y both negative and positive in the r and g channel...hope this works for everyobne
Im new to vvvv so please excuse me if i violated name or coding conventions...if so please point me in the right direction
CommentsComments are no longer accepted.
Please create a new topic in the vvvv beta forum to discuss this contribution.
Looks cool :) You can loose the Mio bit on the module name if you like and then it keeps with the naming conventions, but you can add tags in the shader //@author: vux //@help: template for texture fx //@tags: texture //@credits:
for example, and in the patch with ctl+m
Nice first contribution!
ah k will change that ...just always typed that to see in node browser which ones are mine...and which ones i can trust...lol...thx
I'll be honest I tend to put cat in the file name too ;)
hey princemio. Thanks for contribution. Is it possible to get values of direction and speed of the average movement? Which color scheme i have to use for decode?
hmm if i did everything right then the x value should be in r and the y channel in g of the colored texture ... plus and minus should be available in 32 bit float tex. i think a compute shader would be necessary - like the pipet example in dx11 ...MAYBE ...and then read back ...but i think someone who is more experienced could jump in this topic...sorry if that didnt help
i saw these things http://youtu.be/5VyLAH8BhF8?t=4m35s and thought maybe this encoding scheme is more understandable http://crcv.ucf.edu/courses/CAP5415/Fall2012/Lecture-6b-OpticalFlow.pdf
hey thx for the feedback.
The Shader calculates a certain offset in x and y for each pixel. The hue color coding would imply that we calculate from this x and y values a certain angle which represents a particular hue color. i do believe its sth like this
float angle = atan2(y,x);
now when we reuse the optical flow in the next pass or shader we often use the individual vector to distort the image or for example to accelerate particles in a certain direction. in order to do so, we then need to restore the x and y for the acceleration from this angle again.
Hence we would convert the x and y into an angle in order to restore the x and y later from that angle. Which is think is redundant. (correct me if im wrong)
another problem is that this unneeded conversion is doen via atan which ( like sin,cos, log or texture lookups) increases the cost per pixel tremendously.
hi princemio, I cant code, so my ideas are more theoretical The Shader calculates a certain offset in x and y for each pixel. If we map this offset to some color scheme which let us retrieve hue changing for direction, saturation changing for speed?
How i can run it? There is some addons missed? http://take.ms/eS13p
now i start it - it just was dx11 not for 64bit. installing right pack - resolve my problem