Get rid of magic number in favor of already present computation of the focal length
This commit is contained in:
@@ -33,8 +33,6 @@ using namespace std;
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
constexpr double focal_length_in_px_factor = 0.0462;
|
|
||||||
|
|
||||||
float pow3 (float x)
|
float pow3 (float x)
|
||||||
{
|
{
|
||||||
return x * x * x;
|
return x * x * x;
|
||||||
@@ -524,16 +522,11 @@ bool ImProcFunctions::transCoord (int W, int H, const std::vector<Coord2D> &src,
|
|||||||
x_d /= params->perspective.camera_scale;
|
x_d /= params->perspective.camera_scale;
|
||||||
y_d /= params->perspective.camera_scale;
|
y_d /= params->perspective.camera_scale;
|
||||||
if (params->perspective.camera_defish) {
|
if (params->perspective.camera_defish) {
|
||||||
const double focal =
|
x_d /= f;
|
||||||
params->perspective.camera_focal_length *
|
y_d /= f;
|
||||||
maxRadius *
|
|
||||||
focal_length_in_px_factor *
|
|
||||||
params->perspective.camera_crop_factor;
|
|
||||||
x_d /= focal;
|
|
||||||
y_d /= focal;
|
|
||||||
|
|
||||||
const double r = std::sqrt(x_d * x_d + y_d * y_d);
|
const double r = std::sqrt(x_d * x_d + y_d * y_d);
|
||||||
const double factor = focal * std::atan(r) / r;
|
const double factor = f * std::atan(r) / r;
|
||||||
|
|
||||||
x_d *= factor;
|
x_d *= factor;
|
||||||
y_d *= factor;
|
y_d *= factor;
|
||||||
@@ -1267,16 +1260,11 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I
|
|||||||
x_d /= params->perspective.camera_scale;
|
x_d /= params->perspective.camera_scale;
|
||||||
y_d /= params->perspective.camera_scale;
|
y_d /= params->perspective.camera_scale;
|
||||||
if (params->perspective.camera_defish) {
|
if (params->perspective.camera_defish) {
|
||||||
const double focal =
|
x_d /= f;
|
||||||
params->perspective.camera_focal_length *
|
y_d /= f;
|
||||||
maxRadius *
|
|
||||||
focal_length_in_px_factor *
|
|
||||||
params->perspective.camera_crop_factor;
|
|
||||||
x_d /= focal;
|
|
||||||
y_d /= focal;
|
|
||||||
|
|
||||||
const double r = std::sqrt(x_d * x_d + y_d * y_d);
|
const double r = std::sqrt(x_d * x_d + y_d * y_d);
|
||||||
const double factor = focal * std::atan(r)/r;
|
const double factor = f * std::atan(r)/r;
|
||||||
|
|
||||||
x_d *= factor;
|
x_d *= factor;
|
||||||
y_d *= factor;
|
y_d *= factor;
|
||||||
|
Reference in New Issue
Block a user