Open Socolin opened 1 month ago
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.
Thanks @Socolin for this, it is very interesting! I'll have to put my math's hat on to look at this.
I'm curious. Is this potentially an alternative (better) approach to ProjectiveTransformBuilder.PrependTaper
?
FYI: The performance test I did
TestPerformanceGaussianElimination.zip
Matrix
is using MathNet.Numerics
NugetMatrixCustom
is the implementation included in this PRMatrixCustomFloat
is the same implementation with float instead of a genericMatrix8x8
is using TNumber[,]
instead of TNumber[][]
with static size of 8x8
BenchmarkDotNet v0.13.12, Ubuntu 22.04.4 LTS (Jammy Jellyfish)
AMD Ryzen 9 7950X, 1 CPU, 32 logical and 16 physical cores
.NET SDK 8.0.302
[Host] : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
DefaultJob : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
| Method | Mean | Error | StdDev |
|------------------ |---------:|--------:|--------:|
| Matrix | 526.6 ns | 1.02 ns | 0.96 ns |
| MatrixCustom | 237.0 ns | 3.31 ns | 3.09 ns |
| MatrixCustomFloat | 234.1 ns | 4.64 ns | 4.34 ns |
| Matrix8x8 | 293.5 ns | 0.32 ns | 0.28 ns |
Prerequisites
Description
Add 2 new methods:
PrependQuadDistortion
andAppendQuadDistortion
toProjectiveTransformBuilder
.Those method allow to apply a distortion on an image by specifying the requested coordinate for each corner.
Example:
Source Result