Age | Commit message (Collapse) | Author |
|
|
|
|
|
The functions are almost identical so why not.
I removed several bits:
- weighting by squared pixel value is bad. weight by pixel
value instead.
- making the ROI twice as big doesn't make sense and makes for
misdetected blobs. remove it.
- switch radius coefficient to something doing less iterations.
- sprinkle some __restrict pointer qualifier.
- cv::floodfill invocation had some hardcoded flag value.
- point radius circle and the bullseye line length weren't
adjusted by scaling ratio. while the circle fitted the radius
tightly, it was now clutter, so I removed it, leaving only the
properly-scaled bullseye.
- brightness had to go sadly since it's not accumulated anymore.
|
|
Helps with choosing automatic threshold slider position.
|
|
From my usage the value of 1.5 is excessively conservative.
|
|
This makes the point size text and point crosses not alias due to the
resize.
Due to nice pixel coordinate system, the cross-drawing lambda only needs
minimal changes.
|
|
- Pass `struct CamInfo' rather than several elements separately
- Reformat
- Return `struct CamInfo' together with the frame since then it's always valid
- Move the focal length formula into `struct CamInfo'
- Remove incorrect focal length formula rather than #if 0
- Pass some stuff by reference and not by pointer
|
|
|
|
|
|
|
|
|
|
|
|
- separate .{cpp,hpp} for few classes
- don't include namespaces globally; harmless but looks bad
anyway
- class with all public members to struct
|
|
It's multiplied by 3 just a few lines below. So ~2 is actually a
good lower bound.
|
|
We can't possibly have LEDs smaller than (6/3=2) each.
Especially not (2.5/6).
|
|
Use stack arrays rather than vectors. std::array may be a better
choice though.
|
|
It's branch predicted anyway, but for clarity.
|
|
Follow original implementation.
|
|
|
|
|
|
With -D_USE_MATH_DEFINES MSVC defines the standard M_PI and
friends.
Since this preprocessor definition is now always passed as part
of the build system for MSVC. We can use M_PI as if on a
mission.
|
|
|
|
|
|
Adjust usages.
|
|
|
|
|
|
Use square root of area. Otherwise very small bright points are unfairly
used.
|
|
|
|
The binary frame needs to be used, not grayscale.
v2:
Use brightness for sorting points.
|
|
|
|
|
|
|
|
The new extractor we've been using doesn't take into account brightness
at all. All contours give is the ability to sort points by circularity.
v2:
Change the auto threshold point size range to 2->7 pixels radius.
Issue: #389
v3: sort by radius instead
|
|
Also, make the slider signify the max point radius (hence squaring).
|
|
We want double precision for POSIT. It's best for the type to be set in
ope place without the need to go over everything while switching it back
and forth during tests.
Machine epsilon for float is very small as per
<https://en.wikipedia.org/wiki/Machine_epsilon>. Also see the absurdly
high epsilon of 1e-4 of POSIT that we've had. With floats, making the
epsilon lower resulted in change deltas flushing to zero. This typically
led to the translation Z value being very unstable in PT.
After the epsilon and data type size changes the Z value is stable.
|
|
|
|
Issue: #318
cf. http://forum.il2sturmovik.ru/topic/2291-open-track/page-26
|
|
We no longer have this recurring problem since I enabled
ignoring executable bit changes on the Windows workstation.
|
|
This reverts commit 546cfb5ad52dcfe1421d1af5e7baeada588ac735.
@MathijsG points out that some users have red LEDs, not uniform white.
Issue: #355
|
|
The confusion stems from the max slider value. It's 255, not 100 as is
the default. Max pixel count change to 20 was confused as we'll counting
area and not radius here. Taking into account that the value was divided
by 100 previously, it's bit less than the previous one but not as
confused as then.
Reported-by: @MathijsG
Issue: #355
|
|
Remove redundant operation on the frame.
|
|
|
|
It's enabled only for automatic thresholding. With it on, it's possible
to keep tracking in normal light conditions without changing gain or
exposure beforehand.
It won't function on badly overexposed images, or with other bright
white colors in the frame. It should function on somewhat overexposed
images.
CPU usage is somewhat high, even taking advantage of all OpenCV SIMD
goodness as per the code. We can revert the change if user reception is
bad.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|