Perspective transformation

perspective transformation is still not working well:
when applying an vertical or horizontal correction the image slides out of the frame, leaving an gray border at the other side.
with scaling you can get the content back, but you loose resolution
please add a "move slider" (best for LR3-compability)
Stefan

the program knows the borders of the picture and could keep all 4 in the frame.
with PTlens it is able to do this manually by moving the tilted picture
in LR you need unwanted scaling.

Similar Messages

  • Perspective Transform in Javascript

    Hej everyone,
    I'm working on a script, which should do an automatic perspective correction. Unfortunately the only way I found out until now is some code, generated with the ScriptListener Plugin - and I am having a hard time figuring out what the values / maths are doing. For better understanding what I'm trying to achieve, here is an image:
    The yellow colored area is the original image. Green is the image I'm trying to get. I need to do an perspective correction on the top anchor points. Doing it manually it works fine. However, when I look at the script, the scriptListener is generating, I don't have any clue what the values in there are meaning. Perhaps there is some kind of math I don't get. I can't get any match regarding the values by doing it manually, and the ones the listener writes.
    Anyone an idea? Is there anywhere an angle or distance of how the anchor points are being moved?
    var idTrnf = charIDToTypeID( "Trnf" );
        var desc48 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref21 = new ActionReference();
            var idLyr = charIDToTypeID( "Lyr " );
            var idOrdn = charIDToTypeID( "Ordn" );
            var idTrgt = charIDToTypeID( "Trgt" );
            ref21.putEnumerated( idLyr, idOrdn, idTrgt );
        desc48.putReference( idnull, ref21 );
        var idFTcs = charIDToTypeID( "FTcs" );
        var idQCSt = charIDToTypeID( "QCSt" );
        var idQcsa = charIDToTypeID( "Qcsa" );
        desc48.putEnumerated( idFTcs, idQCSt, idQcsa );
        var idOfst = charIDToTypeID( "Ofst" );
            var desc49 = new ActionDescriptor();
            var idHrzn = charIDToTypeID( "Hrzn" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc49.putUnitDouble( idHrzn, idPxl, -16.066570 );
            var idVrtc = charIDToTypeID( "Vrtc" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc49.putUnitDouble( idVrtc, idPxl, 16.381048 );
        var idOfst = charIDToTypeID( "Ofst" );
        desc48.putObject( idOfst, idOfst, desc49 );
        var idWdth = charIDToTypeID( "Wdth" );
        var idPrc = charIDToTypeID( "#Prc" );
        desc48.putUnitDouble( idWdth, idPrc, 134.475806 );
        var idSkew = charIDToTypeID( "Skew" );
            var desc50 = new ActionDescriptor();
            var idHrzn = charIDToTypeID( "Hrzn" );
            var idAng = charIDToTypeID( "#Ang" );
            desc50.putUnitDouble( idHrzn, idAng, 19.127500 );
            var idVrtc = charIDToTypeID( "Vrtc" );
            var idAng = charIDToTypeID( "#Ang" );
            desc50.putUnitDouble( idVrtc, idAng, 0.000000 );
        var idPnt = charIDToTypeID( "Pnt " );
        desc48.putObject( idSkew, idPnt, desc50 );
        var idUsng = charIDToTypeID( "Usng" );
            var desc51 = new ActionDescriptor();
            var idHrzn = charIDToTypeID( "Hrzn" );
            var idPrc = charIDToTypeID( "#Prc" );
            desc51.putUnitDouble( idHrzn, idPrc, -0.000000 );
            var idVrtc = charIDToTypeID( "Vrtc" );
            var idPrc = charIDToTypeID( "#Prc" );
            desc51.putUnitDouble( idVrtc, idPrc, 0.655242 );
        var idPnt = charIDToTypeID( "Pnt " );
        desc48.putObject( idUsng, idPnt, desc51 );
        var idIntr = charIDToTypeID( "Intr" );
        var idIntp = charIDToTypeID( "Intp" );
        var idbicubicAutomatic = stringIDToTypeID( "bicubicAutomatic" );
        desc48.putEnumerated( idIntr, idIntp, idbicubicAutomatic );
    executeAction( idTrnf, desc48, DialogModes.NO );

    I know of this thread. but it didn't gave me any insight.
    To make it a little bit easier:
    Yellow: Box with 100x100 px dimensions. Doing a perspective transform (manually and listening with scriptListener) of 45°.Top Right Handle. The only values that have changed are die width (from 100% to 300%) and the angle (45°).
    Now, this is what the listener gets:
    var idTrnf = charIDToTypeID( "Trnf" );
        var desc6 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref4 = new ActionReference();
            var idLyr = charIDToTypeID( "Lyr " );
            var idOrdn = charIDToTypeID( "Ordn" );
            var idTrgt = charIDToTypeID( "Trgt" );
            ref4.putEnumerated( idLyr, idOrdn, idTrgt );
        desc6.putReference( idnull, ref4 );
        var idFTcs = charIDToTypeID( "FTcs" );
        var idQCSt = charIDToTypeID( "QCSt" );
        var idQcsa = charIDToTypeID( "Qcsa" );
        desc6.putEnumerated( idFTcs, idQCSt, idQcsa );
        var idOfst = charIDToTypeID( "Ofst" );
            var desc7 = new ActionDescriptor();
            var idHrzn = charIDToTypeID( "Hrzn" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc7.putUnitDouble( idHrzn, idPxl, 0.000000 );
            var idVrtc = charIDToTypeID( "Vrtc" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc7.putUnitDouble( idVrtc, idPxl, 25.000000 );
        var idOfst = charIDToTypeID( "Ofst" );
        desc6.putObject( idOfst, idOfst, desc7 );
        var idWdth = charIDToTypeID( "Wdth" );
        var idPrc = charIDToTypeID( "#Prc" );
        desc6.putUnitDouble( idWdth, idPrc, 150.000000 );
        var idUsng = charIDToTypeID( "Usng" );
            var desc8 = new ActionDescriptor();
            var idHrzn = charIDToTypeID( "Hrzn" );
            var idPrc = charIDToTypeID( "#Prc" );
            desc8.putUnitDouble( idHrzn, idPrc, -0.000000 );
            var idVrtc = charIDToTypeID( "Vrtc" );
            var idPrc = charIDToTypeID( "#Prc" );
            desc8.putUnitDouble( idVrtc, idPrc, 1.000000 );
        var idPnt = charIDToTypeID( "Pnt " );
        desc6.putObject( idUsng, idPnt, desc8 );
        var idIntr = charIDToTypeID( "Intr" );
        var idIntp = charIDToTypeID( "Intp" );
        var idbicubicAutomatic = stringIDToTypeID( "bicubicAutomatic" );
        desc6.putEnumerated( idIntr, idIntp, idbicubicAutomatic );
    executeAction( idTrnf, desc6, DialogModes.NO );
    Where are the values, that I've used manually? And how can I use this Script to do something like 20°, for instance?

  • Apply same Perspective transform to multiple images ?

    Hi guys ... I have a set of images, and I want to apply the same Perspective Transform to all the images. Note that all images have the exact same size, meaning that after apply the same Perspective Transform, they should all still have the exact same size.
    For example, here is the transform I want:
    From this:
    To this:
    Problem is that when I manually apply the transform to each image individually, they don't have the *exact* same size afterwards.
    Isn't there a way that I can just apply the transform to one image, and then that transform is applied on the other images ? I think I can use the Smart Object functionality here, but I don't have any experience on that.

    Hi,
    Recording an action might work if the images are the same pixel dimensions.
    more about actions:
    http://blog.epicedits.com/2008/03/07/how-to-create-photoshop-actions/
    http://morris-photographics.com/photoshop/tutorials/actions.html
    http://help.adobe.com/en_US/photoshop/cs/using/WSfd1234e1c4b69f30ea53e41001031ab64-7448a.h tml

  • [svn] 3504: New flag to allow a component to maintain a centered perspective transform , plus other minor transform cleanup.

    Revision: 3504
    Author: [email protected]
    Date: 2008-10-06 23:44:07 -0700 (Mon, 06 Oct 2008)
    Log Message:
    New flag to allow a component to maintain a centered perspective transform, plus other minor transform cleanup.
    setting the layout matrix or matrix3D now resets transform X/Y/Z to 0.
    setting the component's x/y/z or calling move or setActualSize no longer blows away non-standard transforms (i.e., shear).
    UIComponents can now maintain a centered perspective transform.
    Modified Paths:
    flex/sdk/trunk/frameworks/gumbo-manifest.xml
    flex/sdk/trunk/frameworks/mxml-2009-manifest.xml
    flex/sdk/trunk/frameworks/projects/flex4/manifest.xml
    flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
    flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as
    flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as
    flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as
    Added Paths:
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animate3D.as
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Rotate3D.as
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/Animate3DInstance .as
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/Rotate3DInstance. as

    There are a couple of references which can be found on Portalstudio.oracle.com that are of some use:
    1. A FAQ for Portal 9.0.2.6 Export/Import http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/OTN_CONTENT/MAINPAGE/DEPLOY_PERFORM/9026_EXPORT_IMPORT_FAQ_0308.HTM
    2. Migration Instructions by Larry Boussard (BRUSARDL)
    3. Migrating Oracle Portal from Dev Systems to Production Systems bt Dheeraj Kataria.
    These are all useful documents for a successful first-time Export-Import. However, the limitations and lack of robustness I listed in my first post, make the process so time-consuming and error fraught as to not be a practical development strategy.

  • JAI Perspective Transform

    Can anyone tell me where I could find an example of how to actually use the PerspectiveTransform class to modify an image. I've read all the documentation I can find but I don't understand how to implement it. I'd really just like to see a small example that reads in an image, performs a perspective transformation on it, and saves it again.

    Sir,
    The following link may be of some help to you.
    http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/
    Sincerely,
    Slappy

  • Perspective transform for Smart object.

    Hello!
    I working on the  Photoshop with Smart Object with link to Illustrator. How can i transform perspective for Smart Object in Photoshop? There are accessible to me only Scale Rotate and Skew, others is gray out.
    Thanks all!

    That's a special type of SO you've got: Vector SO. Right-click it in Layers panel and pick Convert to Smart Object. That'll put the VSO inside a SO which you can transform with perspective.

  • Compute transform matrix for perspective transform

    Hello,
    I have the following problem:
    I have the coordinates of a quadrilateral in an image. Furthermore I have the coordinates of the same quadrilateral but from another perspective. Now I'm seeking a way to compute a transform matrix that transforms the second perspective to the first one, so that both quadrilateral have the same coordinates again.
    Unfortunately I'm not very experienced in Image manipulation and I just discovered the JAI API today. I figured out that there is the class PerspectiveTransform to do transforms with a given transform Matrix, but i wasn't able to find out how I can compute this matrix. Is there maybe an easy way to solve my problem with the help of JAI?

    I mean mx.core.UIComponent (AS 3.4)
    I use it in my .mxml as a generic container
    maybe I should draw on a Canvas instead ?
    part of mxml :
    <mx:UIComponent width="100%" height="100%" id="drawing_surface" />
    thx for help

  • Text Perspective Issue

    I am making a document in InDesign that has a series of graphics similar to this one:
    I'd like the type to follow the perspective I'm setting up with the stripe, so that it looks like it's flowing with the graphic.  I can't figure out how to do this in InDesign, is it possible to do and not have to outline the text?

    Just as I thought. After a fair bit of more head-banging and a couple of hours later, and creating wondrous stuff like this:
    I finally arrived at this:
    It's far from perfect! Curved letters don't behave (so they are not warped properly), and it's not a real perspective transform. That needs a z-component as well (it really does -- don't ask me why, I couldn't start to explain... (esp. at this hour)). So this is just a warp transform.
    But you can try if it's good enough for you. I put it as a zip on my website: http://www.jongware.com/binaries/perspective.zip
    To use, draw a left and right line as placeholders for the start and ending points (you can just see them in the picture above), and put the text in a regular text frame underneath. Then select both lines and the text frame, and run the script.

  • Performance problem with transformations

    Hi,
    I'm trying to make an animation with a perspective transformation. In each iterationof the loop, two points are altered.
    It works very well, but it is extremely slow. Is there a possibility to speed this up?
    while() {
                  i++;
                   PerspectiveTransform pt = new PerspectiveTransform().getQuadToQuad(
                            10, 10, 200, 0, 0, 190, 200, 200,
                            10-i,  10, 200, 0, 0, 190+1, 200, 200);
                    WarpPerspective wp = new WarpPerspective(pt);
                    RenderedOp rendOp = createWarpImage(bi, wp);
                    RenderedImage renImage = rendOp.createInstance();
                    AffineTransform at = new AffineTransform();
                    at.scale(0.5, 0.5);
                    at.translate(100, 100);
                    g2.drawRenderedImage(renImage, at);
            public RenderedOp createWarpImage(RenderedImage image, Warp warp) {
                ParameterBlock paramBlock = new ParameterBlock();
                paramBlock.addSource(image);
                paramBlock.add(warp);
                return JAI.create("warp", paramBlock);
            }

    Where is the while loop? direct in your paint method? If yes, here is your problem, because your holding the dispatcher thread. What you need is a render loop:
    MyClass implements Runnable
    int maxFPS ...
    public void run() {
    getCurrentMillis()...
    doTheBigTransform....
    EventQueue.invokeLater(new Runnable() { public void run(){ repaint()... } });
    getCurrentMillis() - prevMillis vs time to wait for fps, if > 0
    @override
    public void paintComponent(Graphics c)
    I need more details about your while loop
    Edited by: DeadlyPredator on Mar 16, 2009 8:23 AM

  • Free transform help

    am using cs3....am trying to free transform but for some reason on the menu i am unable to use either the didstort or perspective function....what do i need to do to make them active??
    THANKS!!

    Are you trying to transform a Smart Object layer? In CS3, you can't use the Distort or Perspective transformations on Smart Objects. You will need to rasterize the Smart Object first. Let me know if this isn't what's causing your problem.

  • Applying identical free transform to second object?

    Please excuse my lack of techinical knowledge, I am trying to learn my way through AI via trial & error since I don't have time to read a book or so.
    I think I understand what paths/anchors are used for and how basic perspective transform works (holding cmd/control and perhaps option and/or shift). I have an object that has already been distorted via Free Transform so that the perspective is changed. I have a logo I would like to add onto the surface of the object.
    My assumption is to use Free Distort again, but how to mimick the same distortions to the correct angles? I have experimented with grabbing corners of the bounding box and trying to snap them to corresponding anchor points of the background perspective shape...but it's not really working out.
    What am I missing?
    I've tried searching for perspective and free transform tool tutorials, but they mostly just show how to distort into a new perspective but not how to 'mimick' or align to an existing perspective.
    Thanks!

    You did that the wrong way you would first position that which you wish to map to the relative position of the object it is being mapped to then group
    the two and then use the free transform.
    The other way is to use the #D Effect's Rotate command and rotate and give it some perspective within the dialog. Then you can turn your art that you wish to map into a symbol which then can be mapped by going back to the effect by accessing it in the appearance panel which will allow you to bring up the 3D Rotate Effect dialog.
    You then click on Map Art button and then select the surface you need to map the art to and then select from the drop down the symbol you made of your art and you can see liv the preview on your art.
    You would actually make the art into a symbol before apply the 3d effect but I wanted you to see that you can keep the effect live and even after you save a close the art you can still remove or remap different art.
    Now most important is that this is Illustrator and you are not going to learn it by trial and error and so it is important for you to get a book like Mordy Golding's Real World Illustrator. For certain Mordy writes much better than probably any of us when it comes to methods, techniques and the workings and fundamentals of Illustrator and the other Adobe programs. Otherwise you are going to be very limited in what you ca do and the amount of time you spend trying to figure it out is going to be a lot more than you will spend reading Mordy's book.
    The really good thing about the book is that is written in a way so that it is one fast reading and easy to retain.
    Do yourself a big favor and read the book.
    After all this is Illustrator and not an easy program to learn.

  • How to copy a smart object transform in Photoshop

    Hello!
    Smart objects in photoshop is realy powerfull tool, i use it  in many different ways and create complicated web graphic. But many times i need to do one thing with them and always fail:
    If i have several different smart objects, and I do DIFFERENT  perspective transform to them (it means scaling distortion rotation etc)
    how can i apply the *same* transform that has one of my objects to another one smart objet that yet has no transformation (or it has some alrady dosn't matter)?
    In other words how can i copy the transformation in some way (as you might copy a layer style and apply the same one to a different layer)
    Is there any way? or i shoud look to scripting to do that?
    Is there real photoshop guru who knows how to do that?
    thanks in advance

    Thank you!
    Yes i know about this workaround but unfortunatly there will be immediatly other question raised :
    if i do this (replace content of my new smart object created by copying from original) then this new smart object will be disconnected from any other smart object, and there is no way how to restore this connection betwen smart objects after content replace operation. Or there is?
    This is important  for me cause in my work i have a lot of smart objects with different transformations but conneted to one source data object.
    So unfortunatly for me but this idea is not even workaround for my workflow? It's so pity

  • Can't warp pasted AI vector Smart Object using Free Transform in PS CS6

    Hi
    I pasted a vector object into PS CS6 (13.0.1 x32) today directly from Illustrator CS6 (16.0.1 x32), and selected "Paste as Smart Object" (Windows XP Pro SP3).
    I then tried to warp the pasted object using the Free Transform tool by dragging one of the corner handles with CTRL held down (Windows).
    This usually warps\distorts the object, but instead, this launched a skew operation.
    If I paste as Shape Layer or as Pixels then apply Free Transform, <Ctrl + corner handle drag> performs a warp\distort operation.
    Also, if I rasterise the pasted AI object, and then convert to a Smart Object I can warp\distort.
    Is it not possible to paste an Illustrator vector in as a Smart Object, and then warp\distort it directly using this technique?
    Thanks for your help.
    Richard

    Your right in that on a pasted vector smart one can't warp, distort or perform perspective transforms.
    One workaround would be to right click on the vector smart object layer in the layers panel and
    choose convert to smart object.
    It depends on what your object is, but you'd probably get better quality from a pasted shape or path, but then you won't be able to open the object
    back in illustrator from photoshop.

  • Elements 6: transform tool problems

    I've just downloaded a trial version of Elements 6 for Mac. I use an iMac with OSX 10.5.5
    I find the transform tool doesnt work as expected (neither did it in Elements4). It seems to be OK in performing a transform perspective operation except for the final step when pressing return results in nothing happening. The change is still visible but Elements won't actually make the change to the jpeg image. I wonder if anyone has suggestions? Do I have some vital but obscure setting in Elements disabled or not set?
    Chris, UK

    Thank you for responding Barbara. I'm trying to correct some converging verticals by using the transform perspective commands. It's a part of Photoshop that I was familiar with when using CS3 on my PC but using Elements (I've tried both 4 and 6) on a Mac seems to be different. I've tried the checkmark (in 4, but it isn't there in 6) which also fails to action the selected perspective transformation. Any suggestions would be very much appreciated. Regards. Chris

  • Scripting Transform for user interaction

    I'm trying to create a vector layer in PS CS6 that is used as a cropping guide for portraits.  When I try to apply a transform to this layer, the transform box comes up but I can't change anything.  I've done a search for this, and seen some examples from Mike and Paul, but they all will not allow me to change the transform.

    You may want to make sure what the Photoshop target is when you do the transform and also make sure there is no active selection.  Like perhaps set the which layer is the active active layer and target the RGB channel. Free Transform may have some options disabled depending on layer type.  For example if the current targeted layer is a text layer distort and perspective transforms can not be done. You would need to convert the text layer to a shape layer first to do that type of transform. You may want to also have a try catch to allow cancel for if no change is made ENTER as well as ESC cancels the transform.
    activeDocument.selection.deselect();
    try{
    InteractiveTransform()
    }catch(e){alert("Image Transform Canceled");}  //  or have no message
    function InteractiveTransform() {
      // Menu Edit>Free transform
        var desc1 = new ActionDescriptor();
        var ref1 = new ActionReference();
        ref1.putEnumerated(cTID('Mn  '), cTID('MnIt'), cTID('FrTr'));
        desc1.putReference(cTID('null'), ref1);
        executeAction(cTID('slct'), desc1, DialogModes.NO);

Maybe you are looking for

  • BIC Module Error in Sender Communication channel for EDI to File scenario.

    Hi Experts, We are working on the EDI based scenarion where EDI files come to SAP PI from partner and then through Split 997 Adapter Func Ack is sent back to the Partner . But we are facing a issue in our sender Communication Channel which is a File

  • HR_INFOTYPE_OPERATION  + Webdynpro

    Hey Experts, I am creating a portal app (Webdynpro for ABAP) that allows me to adjust timeinfotypes. When using the functionmodule hr_infotype_operation, it somehow gives me shortdumps in the portal. Errors like 'not enough quota' and 'collision dete

  • Need Java API's to create OSB proxy and Business Services

    Hi All, I need to create OSB proxy and business services using Java API's. Does any one have reference to the OSB APIs??

  • Backup drive

    Is there any brand of backup drive that is better (or worse) than any other for Time Machine? We're about to purchase a 1 or 1.5 Tbyte drive, and have no clue which to get. Thanks! susan

  • Mot de passe de sauvegarde inconnue

    j'ai effectue une sauvegarde chiffrée de l'iPhone sur itune. Le Pc ne m'a pas demandé de mot de passe et maintenant que je veux remettre la sauvegarde il me demande un mot de passe. J'ai tente mon identifiant, Le mot de passe habituel. Mais ça ne va