FreeTrack Forum
FreeTrack Forum > FreeTrack : English Forum > Support : FreeTrack Software > Compiling FreeTrack
howecome | #1 07/01/2008 - 14h14 |
Class : Apprenti Off line |
Hi there,
I'd like to compile FreeTrack for myself as I would like to bypass some of the stabilisation and sensitivity options. Ideally I would like to get the data out in actual values of radians or degrees. I am new to Delphi so it's been a steep learning curve so far. I believe success is not too far away though. I have an error... [Error] ProfilesMngr_fm.pas(514): Undeclared identifier: 'FT_PROGRAMID' FT_PROGRAMID is certainly declared in Freetrack_fm.pas but not until after the line where 'uses ProfilesMngr_fm' appears. Is this a problem? The above error then leads to a further error... [Fatal Error] Freetrack_fm.pas(824): Could not compile used unit 'ProfilesMngr_fm.pas' Sorry for my ignorance. Any help would be greatly appreciated. Cheers, Ally
Edited by howecome on 07/01/2008 at 14h44.
|
Kestrel | #2 09/01/2008 - 03h31 |
Off line |
It's also defined in TIRTypes.pas.
Remove the PROGRAMID declaration from Freetrack_fm.pas and put TIRTypes into the uses list. Make sure TIRTypes is usable in ProfilesMngr_fm.pas. |
DPLUIGI | #3 09/02/2008 - 08h35 |
Class : Beta Tester Off line |
Hi,
I am glad I came across this thread since I would also like to understand how to compile FreeTrack. Could you help me locate the compiler and library (hopefully they are free utilities) I'd need to compile FreeTrack? I am new to Delphi and I would also appreciate if you could briefly describe or point me to links explaining who install and use a free Delphi compiler to generate an executable from FT source code. Many thanks in advance, Donat
Edited by DPLUIGI on 09/02/2008 at 19h44.
|
howecome | #4 11/02/2008 - 10h16 |
Class : Apprenti Off line |
Hello,
This may not be officially correct, but it worked for me. 1) Get hold of Delphi Version 7 - the licence code can be obtained free from Borland but they do not distribute the software itself anymore. 2) Download the Freetrack source code from this site 3) Download the various libraries described in the readme file. Then install each of these packages - this confused me a bit. Unlike other libraries I have used in the past in other languages, you need to install the packages (rather than just linking them) as they add additional menu options to the Delphi IDE software. 4) You may need to change some of the project options, or the compilers options, so that all the dependencies can be resolved. I hope this helps. Ally
Edited by howecome on 11/02/2008 at 10h17.
|
DPLUIGI | #5 11/02/2008 - 16h30 |
Class : Beta Tester Off line |
Thanks for the replies Ally and Kestrel.
Ally, in 1) do you mean that if one can find a Delphi software CD Borland would provide a "free" personal license? If yes, since Borland does not distribute Delphi 7, where could I found the CD? The internet? I am starting to ask around my programmer friends but so far no one uses Delphi. I am more familiar with C and C++ and I have to go back to my undergrad for a little programming experience using Borland product with Turbo Pascal in the early 90's. I am wondering how easy it'll be to get together a Delphi compiler and the required library. The good news is that it looks like it could be free. Donat
Edited by DPLUIGI on 11/02/2008 at 17h39.
|
usr | #6 11/02/2008 - 19h41 |
Class : Apprenti Off line |
oh my god, there's a readme.txt in the source repository!
now i feel a little stupid, having spent so many hours to get the freetrackfilter (if nothing else) to compile, without that totally useful document. By the way, the current state of my modified freetrackfilter version has YUY2 support and something best described as "per pixel difference thresholding", working in YUY2 and RGB24 (i broke the other modes when i ported my changes from the FT1.0 source to the current 2.1 source). the "per pixel difference thresholding" stores one frame of past pixels and only writes the current value of each pixel to that buffer if the difference between the new value and the stored value is bigger than some threshold (i simply take half or third of the seuill value) otherwise the stored value won't be changed. this way camera noise is practically nonexistant, yet still real movement results in instant changes with no additional latency. in the RGB24 mode the pixels that are changing are marked blue, in YUY2 they are marked something druggy around the chrominance plane. beware of the fixed 4-point tracking preference though, this filter takes an arbitrary number of points and takes the four "best" points (highest number of pixels). this makes threshold setup much less critical, because a few stray noise pixels or so won't be able to destroy your tracking. if you still want to test those alternative modes in action you can grab binary or source, but please don't complain about crashes in other modes than RGB24 and YUY2 or lack of 3 point support (look into RemoveWeakestLed() if you are interested in rewiring it for 3 points, i guess someone -me?- should add some code that reads the active point model from the ini file)
Edited by usr on 12/02/2008 at 21h32.
|
Kestrel | #7 12/02/2008 - 01h29 |
Off line |
Your links are broken Usr (even after removing the %22s and extra http). I like the idea of "per pixel difference thresholding" or some sort of noise reduction by frame blending. Didn't you also say you had a weighted mean to find centers for sub-pixel accuracy?
|
usr | #8 12/02/2008 - 22h06 |
Class : Apprenti Off line |
sorry for the inconvenience, i think the links are fixed now.
i got rid of the weighted mean (weighted by light intensity) after i made the "delta threshold" thing (shorter name == better name), because this can keep pixels from reaching peak intensities. pixels will only jump by "delta threshold" + x and some some "in-LED" will jump close to 100% while others will stay somewhere around 100%-("delta threshold" + x), totally destroying the weighting. now while i'm talking about this something else occurs to me: the pixel delta threshold should never be higher than the difference between maximum intensity and the LED threshold, because otherwise you can get pixels that are stuck at a value slightly below threshold and could not even be identified as LED pixels if they went to 100%. the best way to avoid these problems would certainly be to replace the "per pixel thresholding" with a simple hystheresis function, pseudocode "if(pixel was in LED last frame) pixel is in LED iff(value>threshold-delta) else pixel is in LED iff(value>threshold+delta)". should not be any more difficult (or slower) than what my code currently does. multiframe blending is probably not so good, because it adds latency. what i am hoping to do one day is adding a simple in-frame blur filter, this will keep the LED blotches high, keep the "lowlands" low but still even out the pixel noise at the fringes a little. sure, it's a performance hit, but compared to the USB overhead on all my 3 cameras it would still be more than tolerable, at least for people with multicores or network setups. sub-pixel stuff is btw still done, look for occurrences of the OVERSAMPLE constant in the source, it's pretty much self explaining. |
usr | #9 12/02/2008 - 23h31 |
Class : Apprenti Off line |
tried the hystheresis thing, feels much better now (no "pixel locked at some middle value" effects). a subjective little drawback is that you don't see background noise in the flats, but i can live with that
files are at binary or source, with the usual limitations (yuy2 and rgb24 only, 4-point only) |
jpmclaro | #10 26/02/2008 - 17h13 |
Class : Apprenti Off line |
Hi,
Where do I find the file TirTypes.pas? Because I am only finding the file TirTypes.dcu. Best Regards João Paulo |
FreeTrack Forum > FreeTrack : English Forum > Support : FreeTrack Software > Compiling FreeTrack
> Stats
1 user(s) connected during the last 10 minutes (0 member(s) and 1 guest(s)).
Powered by Connectix Boards 0.8.4 © 2005-2024 (8 queries, 0.013 sec)