Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
9fc1283
added video type ffmpeg
Apr 21, 2014
f4e2d1d
Remove xuggler from source code.
Oct 24, 2014
7fe53f7
Merge remote-tracking branch 'upstream/master'
Nov 15, 2014
3c6d943
Fix merging problems.
Nov 16, 2014
5d6b53e
Adjust start to use classpath in Linux
Dec 2, 2014
67231b5
Merge branch 'master' of github.com:OpenSourcePhysics/tracker
Jul 12, 2015
cceca9a
Fix override warnings because of some java classes became interfaces.
Jul 14, 2015
afe0dab
Fix encoding.
Jul 14, 2015
fe3805f
Fix download location for ffmpeg.
Jul 14, 2015
8ada657
Convert line endings to lf.
Sep 12, 2015
523ca13
Merge upstream/master 12.9.15.
Sep 12, 2015
a0f3250
Fix override errors. Add some files.
Sep 12, 2015
b6942e1
Fix startup process.
Sep 13, 2015
408f130
Merge branch 'master' of github.com:OpenSourcePhysics/tracker
May 4, 2016
65d8272
readd missing files Circle*
May 4, 2016
3532b8c
fix some problems
May 5, 2016
5d3a87f
Merge remote-tracking branch 'upstream/master'
Sep 20, 2016
15efb3a
fix some merging errors
Sep 20, 2016
c44fbe8
Merge remote-tracking branch 'upstream/master'
Oct 3, 2016
a780118
prevent tracker from restarting on linux
Jan 2, 2017
278560b
Merge remote-tracking branch 'upstream/master'
Oct 5, 2017
982d115
change xuggle to ffmpeg
Oct 5, 2017
52008ca
fix missing declaration of 2 buttons
Oct 5, 2017
343f08b
Merge branch 'master' of github.com:OpenSourcePhysics/tracker
Oct 7, 2018
7032677
fix translations Xuggle -> FFMPeg
Oct 7, 2018
2943d55
fix Xuggle -> FFMPeg, xuggle -> ffmpeg
Oct 7, 2018
bbe1b12
fix ffmpeg merging errors
Oct 7, 2018
8b20feb
Flag to suppress skip-warning while autotracking a particular point mass
nickkolok Dec 5, 2018
9933dae
Code style
nickkolok Dec 5, 2018
2ed7571
Whitespaces
nickkolok Dec 5, 2018
6bb626b
Whitespaces
nickkolok Dec 5, 2018
bb668f5
Whitespaces
nickkolok Dec 5, 2018
efa3df9
TallSpinner refactoring
nickkolok Dec 5, 2018
e20ca6e
TallSpinner class separated
nickkolok Dec 5, 2018
e26028e
Whitespaces
nickkolok Dec 5, 2018
27d1733
Unused class was removed
nickkolok Dec 5, 2018
5eb030f
Autoskip feature
nickkolok Dec 5, 2018
4918f71
Version bump 5.1.0alpha
nickkolok Dec 5, 2018
a4d11ef
Autoskip label
nickkolok Dec 5, 2018
0b3e09c
Whitespaces
nickkolok Dec 5, 2018
ae90cdc
Support for additional decimal separators
nickkolok Dec 10, 2018
e1ea6af
Preventing Tracker to throw an exception when two versions are not co…
nickkolok Dec 10, 2018
6b9967d
Cosmetics
nickkolok Dec 10, 2018
e51592e
Support for reverse steps
nickkolok Dec 10, 2018
a9b5e2b
Cosmetics
nickkolok Dec 13, 2018
83bcde2
Removed a function which was moved to more general static class
nickkolok Dec 13, 2018
56b44a5
Cosmetics
nickkolok Dec 14, 2018
30d9dde
Cosmetics
nickkolok Dec 14, 2018
47e6634
Minor refactoring - needed for moving average
nickkolok Dec 14, 2018
0caaaf9
Applying moving average to a PointMass
nickkolok Dec 14, 2018
056a9f5
Refactoring: splitted and separated TextLineLabel class
nickkolok Dec 14, 2018
7da9802
Refactoring: class StepaArray separated from TTrack, because it doesn…
nickkolok Dec 14, 2018
7e94ef5
Meta - version and copyright
nickkolok Dec 14, 2018
87d79f7
Refactoring: class TTrack.NameDialog separated as TrackNameDialog
nickkolok Dec 14, 2018
559809c
Autotracker options separated to a class
nickkolok Dec 14, 2018
8c9e761
Cosmetic
nickkolok Dec 14, 2018
3f0794c
AutoTrackerOptions is now cloneable - for saving copies somewhere in …
nickkolok Dec 15, 2018
ab6ae47
maxEvolveRate moved to AutoTrackerOptions
nickkolok Dec 15, 2018
c29c5fb
TODO note
nickkolok Dec 15, 2018
d614c84
Cosmetics
nickkolok Dec 15, 2018
0fd0857
Code formatting
nickkolok Dec 15, 2018
79201df
AutoTrackeOptions - firing messages - rather WIP, but already usable
nickkolok Dec 15, 2018
b575d3c
Width of mask in AutoTraker wizard - WIP
nickkolok Dec 15, 2018
a2a73df
Reverse response when dragging the mask
nickkolok Dec 15, 2018
df7fe61
Part of wizard initialization moved from AutoTracker() to AutoTraker.…
nickkolok Dec 15, 2018
8238ddf
Default mask size enlarged twice
nickkolok Dec 16, 2018
abc3c69
refreshCurrentMask() - cleanup and annotation
nickkolok Dec 16, 2018
642bab2
Redundant method deleted
nickkolok Dec 16, 2018
7147ca9
Label for new width spinner
nickkolok Dec 16, 2018
6b23681
Width spinner made editable
nickkolok Dec 16, 2018
07cccdd
Height spinner
nickkolok Dec 16, 2018
9219af8
Separate panel for template width and height
nickkolok Dec 16, 2018
3082a0a
GUI-specific function moved to the wizard
nickkolok Dec 18, 2018
c106cd8
Refactoring: AutoTrackerControl interface
nickkolok Dec 18, 2018
7de792d
Refactoring - separating AutoTrackerContol - WIP
nickkolok Dec 18, 2018
1cf786c
Refactoring: in KeyFrame: switching from Target to TPoint (thnx polym…
nickkolok Dec 18, 2018
3306cc3
Refactoring: preparation for AutoTracker algorithm separation
nickkolok Dec 18, 2018
8737455
Refactoring: making FrameData and KeyFrame more independent from GUI
nickkolok Dec 18, 2018
f398939
Refactoring: one more bit of independence from GUI
nickkolok Dec 18, 2018
7f18bf1
Refactoring: one more occurence of maskCorner replaced
nickkolok Dec 18, 2018
89a21cf
Refactoring: 'relative' frame numbers
nickkolok Dec 18, 2018
088f005
AutoTrackerFeedback class separated
nickkolok Dec 18, 2018
89b38f8
Cosmetics
nickkolok Dec 18, 2018
5e4c285
Tiny step to separation
nickkolok Dec 18, 2018
793a20a
Refactoring. Hooray! AutoTrackerCore is eventually separated
nickkolok Dec 18, 2018
fa6d0da
Refactoring: getStatusCode() travelled to AutoTrackerCore
nickkolok Dec 18, 2018
e0e0896
Refreshing match and template icons is moved to AutoTrackerCore
nickkolok Dec 18, 2018
83ad0d6
lineSpread was moved to options
nickkolok Dec 18, 2018
84aaf51
Getting derivatives is moved to AutoTrackerCore
nickkolok Dec 18, 2018
eef1547
predictionLookback moved to options
nickkolok Dec 18, 2018
822b09c
getMatchCenter() moved to core
nickkolok Dec 18, 2018
a3d09e5
getMatchTarget() moved to core
nickkolok Dec 18, 2018
2372dc3
getPredictedMatchTarget() moved to core
nickkolok Dec 18, 2018
02dd75d
Last unwanted occurence of maskCorner was replaced
nickkolok Dec 18, 2018
fd226f8
One more draft to be moved to core
nickkolok Dec 18, 2018
8fb6c23
Installation instructions
nickkolok Dec 18, 2018
7511500
Note about Ubuntu repos in README
nickkolok Dec 26, 2018
0b6deda
Refactoring: forceAccept in core
nickkolok Dec 26, 2018
7ff75a2
Feature: rectangular search shape
nickkolok Dec 26, 2018
1dc947b
A bit more independence from trackerPanel
nickkolok Dec 26, 2018
3805fdc
Frame deletion algorithms moved to Core
nickkolok Dec 26, 2018
79a32b5
Minor cleanup
nickkolok Dec 26, 2018
b03c145
Code reformat
nickkolok Dec 26, 2018
74ab1a0
Version bump
nickkolok Dec 27, 2018
88ad5ca
Removed unused interface
nickkolok Dec 27, 2018
62c666f
TODO notes
nickkolok Dec 14, 2020
3446a3f
Enable logging
nickkolok Dec 14, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,26 @@ Video analysis and modeling tool built on the Open Source Physics (OSP) framewor

This code requires the OSP Core Library available in the <a href="https://github.com/OpenSourcePhysics/osp" target="_blank">OpenSourcePhysics/osp</a> repository.

Optional Xuggle video engine support is available in the <a href="https://github.com/OpenSourcePhysics/video-engines" target="_blank">OpenSourcePhysics/video-engines</a> repository. Without a video engine Tracker will only open images (JPEG, PNG) and animated GIFs.
Optional video engine support (FFMPeg on Win/OSX/linux, QuickTime on Win/OSX) is available in the <a href="https://github.com/OpenSourcePhysics/video-engines" target="_blank">OpenSourcePhysics/video-engines</a> repository. Without a video engine Tracker will only open images (JPEG, PNG) and animated GIFs.

Note: Tracker includes classes to handle apple events that to compile require the Apple Java Extensions library (AppleJavaExtensions.jar) which can be downloaded <a href="http://www.cabrillo.edu/~dbrown/tracker/osx_services/AppleJavaExtensions.jar" target="_blank">here</a>.


Installation
============

DEB-based:

```
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/NickKolok:/osptracker/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/home:NickKolok:osptracker.list"
wget -nv https://download.opensuse.org/repositories/home:NickKolok:osptracker/xUbuntu_16.04/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install osptracker
```

(you may need to enable `universe` repo in some Ubuntu versions to install `ffmpeg`).

RPM-based:
see https://software.opensuse.org//download.html?project=home%3ANickKolok%3Aosptracker&package=osptracker
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ protected void reset() {
dt = trackerPanel.getPlayer().getMeanStepDuration() / (1000*tracePtsPerStep);
VideoClip clip = trackerPanel.getPlayer().getVideoClip();
// find last frame included in both model and clip
int end = Math.min(getEndFrame(), clip.getLastFrameNumber());
int end = Math.min(getEndFrame(), clip.getFrameCount()-1);
while (end>getStartFrame() && !clip.includesFrame(end)) {
end--;
}
Expand All @@ -119,7 +119,7 @@ protected void reset() {
// mark a step at firstFrameInClip
steps.setLength(firstFrameInClip+1);
PositionStep step = (PositionStep)getStep(firstFrameInClip);
for (int i = 0; i<steps.array.length; i++) {
for (int i = 0; i<steps.length; i++) {
if (i<firstFrameInClip)
steps.setStep(i, null);
else if (step==null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,6 @@ public Dimension getPreferredSize() {
stepsButton = new JRadioButton();
tracksButton = new JRadioButton();
Action tracksOrStepsAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
if (refreshing) return;
CircleFitter fitter = (CircleFitter)TTrack.getTrack(trackID);
Expand All @@ -306,7 +305,6 @@ public void actionPerformed(ActionEvent e) {
relativeCheckbox = new JCheckBox();
relativeCheckbox.setSelected(false);
relativeCheckbox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (refreshing) return;
CircleFitter fitter = (CircleFitter)TTrack.getTrack(trackID);
Expand All @@ -319,7 +317,6 @@ public void actionPerformed(ActionEvent e) {

// range action, listener and fields
final Action frameRangeAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
CircleFitter fitter = (CircleFitter)TTrack.getTrack(trackID);
fitter.setAttachmentStartFrame(startField.getIntValue());
Expand Down
Loading