Giter Club home page Giter Club logo

Comments (15)

c42f avatar c42f commented on August 19, 2024 2

@mronian I'd encourage you to consider making your transformations compatible with CoordinateTransformations.Transformation. Our intention with CoordinateTransformations is to first, have generic and efficient transformation composition and inverse, second, to allow transformations to be efficiently differentiated with respect to their input or parameters, to allow the use in optimization procedures. For cameras this should be particularly relevant if you're doing bundle adjustment, lens calibration, etc for 3D reconstruction like your package seems to be aiming at.

The PR @andyferris is referring to is JuliaGeometry/CoordinateTransformations.jl#20

from imagetransformations.jl.

timholy avatar timholy commented on August 19, 2024

Yes to both. Not there yet.

A future imresize should also live here.

from imagetransformations.jl.

Evizero avatar Evizero commented on August 19, 2024

Understood! I presume imresize is also intended to return a view (given the general theme of images nowadays).

I hope I will be able to help out here a lot. I certainly plan to, but I have proven myself wrong on such promises in the past.

from imagetransformations.jl.

mronian avatar mronian commented on August 19, 2024

I guess this overlaps with JuliaImages/CameraGeometry.jl too?

from imagetransformations.jl.

Evizero avatar Evizero commented on August 19, 2024

naively I would guess CameraGeometry builds on ImageTransformations

from imagetransformations.jl.

timholy avatar timholy commented on August 19, 2024

Understood! I presume imresize is also intended to return a view (given the general theme of images nowadays).

Actually, no: generic resizing can't be done efficiently as a view, I think.

I guess this overlaps with JuliaImages/CameraGeometry.jl too?

Oh gosh, I didn't even think of that. Sorry about that. But oh, wait, there's no code there yet, so no duplicated effort I hope 😅.

Yes, if that's the mission of CameraGeometry, we should centralize them somehow. I'm fine with moving this code to CameraGeometry, although I wonder if ImageTransformations is a better name?

from imagetransformations.jl.

Evizero avatar Evizero commented on August 19, 2024

Are they the same thing though? I would have guessed, half informed as I am, that CameraGeometry focuses more on algorithms that derive the appropriate set transformations (and their parameters) to use in specific situations, while ImageTransformations provides many of the transformations themselves

from imagetransformations.jl.

mronian avatar mronian commented on August 19, 2024

CameraGeometry focuses more on algorithms that derive the appropriate set transformations (and their parameters) to use in specific situations, while ImageTransformations provides many of the transformations themselves

I guess the current structure is fine then 🤔 (with separate packages)

from imagetransformations.jl.

andyferris avatar andyferris commented on August 19, 2024

In CoordinateTransformations.jl we are just adding now a PerspectiveMap transformation to handle cameras (one can position a camera with exisiting transformations and chain these together). In ImageTransformations.jl we should have enough support for warps and lens corrections and so on (which again can be chained). I was hoping that between the two there should be solid support for cameras, but I'm also happy to factor things out differently if that is better.

Also 3D reconstruction is an interesting one! One might consider a Ray type to help with the (psuedo) inverse of PerspectiveMap or something. I'm not sure where that should live.

from imagetransformations.jl.

c42f avatar c42f commented on August 19, 2024

@andyferris a Ray type is quite a generic concept, as the set of rays is isomorphic to the tangent bundle of the 3D space. I feel like standard objects from differential geometry are a good fit for CoordinateTransformations... I guess the trick is to make the generic differential geometry concepts practical and approachable :-)

from imagetransformations.jl.

andyferris avatar andyferris commented on August 19, 2024

@c42f right, true, especially the "practical and approachable" part

from imagetransformations.jl.

andyferris avatar andyferris commented on August 19, 2024

To follow up, I was hoping Ray was more approachable than TangentBundle but maybe that's just because I haven't studied many differential geometry/geometric algebra concepts.

from imagetransformations.jl.

c42f avatar c42f commented on August 19, 2024

Definitely! That's my point really: I think generic differential geometry concepts are fair game for CoordinateTransformations (provided they're practically useful in numerical code) , but we should use friendly names where possible.

from imagetransformations.jl.

mronian avatar mronian commented on August 19, 2024

@c42f , @andyferris I love the way CoordinateTransformations.jl works and would enjoy working with you to develop CameraGeometry.jl. I will be working on this during my winter break (December) and definitely need help 😄 Maybe we should first decide some sort of roadmap and how things would work?

from imagetransformations.jl.

c42f avatar c42f commented on August 19, 2024

Great! I think we can continue this discussion over at CameraGeometry.

from imagetransformations.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.