Image-processing plugins

Any further news on 3rd-parties being able to extend LR with image-processing plugins yet?    When the SDK was first announced, it was described by Adobe as a 'preview' SDK and that a full SDK, allowing image-processing and other plugins, would be forthcoming.
Keen coders want to know.
Thanks,
John.

John,
No news on the image processing API front.  We're a small team and prioritizing aggressively to meet photographers' expectations.  To that end, we are more focused on workflow APIs than image processing APIs.  Here are a couple blog posts I've written on the topic:
http://blogs.adobe.com/lightroomjournal/2007/11/lightroom_13_the_export_sdk_pr.html
http://blogs.adobe.com/lightroomjournal/2008/08/plugin_or_external_editor.html
Can you give me an idea of the image processing plug-in you'd like to create?  I know that some of the largest plug-in manufacturers have been willing to accept the external editor compromise for the time being.
Regards,
Tom Hogarty
Lightroom, Camera Raw, DNG Product Manager

Similar Messages

  • Image Processing Algorithms - From Matlab to Pixel Bender

    Hello.
    Got a few Image Processing (Mainly Image Enhancement) Algorithms I created in Matlab.
    I would like to make them run on Photoshop, Create a Plug In out of it.
    Would Pixel Bender be the right way doing it?
    The Algorithms mainly use Convolutions and Fourier Domain operations.
    All I need is a simple Preview Window and few Sliders, Dropbox and Buttons.
    I'd appreciate your help.

    pixel vs float - Couldn't figure out what exactly is the difference if there is at all. I assume Pixel always get clipped into [0 1] and float won't until it gets to be shown on the screen as an output?
    There is no difference between them. At one stage of development we had some ideas about the way the pixel type should work that would make it different to float, but the ideas never came to anything and by the time we realized that it was too late to change. It's #1 on my list of "mistakes we made when developing Pixel Bender".
    Regions - Let me see if I get is straight. For the example assuming Gaussian Blur Kernel of Radius 5 (Not the STD, but the radius - a 11x11 Matrix). I should use "needed()" in order to define the support of each pixel output in the input image. I should do it to make sure no one changes those values before the output pixel is calculated.
    Now, In the documentation is goes needed(region outputRegion, imageRef inputIndex). Should I assume that at default the outputRegion is actually the sampled pixel in the input? Now I use outset(outputRegion, float2(x, y)) to enlarge the "Safe Zone". I don't get this float2 number. Let's say it's (4, 3) and the current pixel is (10, 10). Now the safe zone goes 4 pixel to the left, 4 to the right, 3 up and 3 down? I assume it actually creates a rectangle area, right? Back to our example I should set outset(outputRegion, float2(5.0, 5.0)) right?
    Needed is the function the system calls to answer the question "what area of the input do I need in order to calculate a particular area of the output?".
    I should do it to make sure no one changes those values before the output pixel is calculated.
    No, you should do it to make sure the input pixel values needed to compute the output pixel values have been calculated and stored.
    Should I assume that at default the outputRegion is actually the sampled pixel in the input?
    No. When "the system" (i.e. After Effects, PB toolkit or the Photoshop plugin) decides it wants to display a particular area of the output, it will call the needed function with that area in the outputRegion parameter. The job of the needed function is to take whatever output region it is given and work out what input area is required to compute it correctly.
    Let's say it's (4, 3) and the current pixel is (10, 10).
    Don't think in terms of "current pixel" when you're looking at the needed function. The region functions are not called on a per-pixel basis, they are called once at the start of computing the frame, before we do the computation for each pixel.
    Back to our example I should set outset(outputRegion, float2(5.0, 5.0)) right?
    Yes - you're correct. Whatever size the output region is, you require an input region that has an additional border of 5 pixels all round to calculate it correctly.

  • Pages repeatedly crashing due to "SFWord Processing Plugin"

    I'll be working in Pages '08 and click on something (sometimes in the menu bar, sometimes in the text, sometimes in the Inspector--doesn't seem to follow a real pattern), and all the sudden I will get the spinning beach ball. I won't be able to save. Other programs become unusably sluggish. After about 10 minutes of beach-ball spinning, Pages crashes with a message indicating that the probable reason is "SFWord Processing Plugin."
    This has been going on all day. Add to this frustration that Pages has not autosave and I am losing my docs left and right. I have been forced to start typing in TextEdit and not happy about it.
    Any ideas what SFWord Processing Plugin is and how I can fix the problem?
    Thanks.

    If you have the same problem on six Macs, I doubt very much that there is any problem with the cache.
    It is likely that you have installed something on all of them that does not work properly - or at least does not work properly with Pages.
    If you know you have installed something unusual on all six of them, I would look into uninstalling that on one of them, and see if that makes any difference. It could be an application, a font, a widget, a movie or image that corrupts the media browser - just about anything, but it exists on all six of them.
    My guess would be the printer driver. It is likely that all of them has at least one printer in common, and it is possible that that one does not play well with Pages. If you can spare one Mac, try removing all printers for a few days on that one, and see if Pages still behaves funny.
    I am in no way a printer guru myself - I do not even have own a printer any more. But I know that other people here have printers.
    Oh, btw, if you anyhow want to know about the system caches, you find at least some of them by typing the following two commands in the Terminal:
    <pre>
    cd `getconf DARWINUSER_CACHEDIR`
    open ..
    </pre>

  • Mercalli image stabilization plugin on sale

    http://www.digitaljuice.com/products/products.asp?pid=591
    Great price for excellent image stabilization plugin. I use it all the time and it works very well EXCEPT:
    it does not play well with dissolve transitions and will not render at all.
    SOLUTION: I make a cut at the beginning and end of each dissolve transition and stabilize the material between transitions. I use this plugin to stabilize hand-held camera footage and it works very well. I have not used it extensively with other transitions as I tend to be very conservative with my scene transitions.
    For $59 it can't be beat.

    >Might it not be better to stabilize the entire clip and then export it back out to use in your projects?
    In most cases, yes. But consider the case where only part of a continuous shot needs stabilization. If you stabilize the whole clip, the steady portion is processed unnecessarily, and motion is added that wasn't there before.
    If you razor the clip, the continuity of the shot is broken at the cuts between the portions that are stabilized and those that are not. The result is not good.
    SteadyMove Pro is less effective than Mercalli, and renders a lot slower. But SMP is keyframeable, while Mercalli is not. I would love to be able to animate the Mercalli settings.

  • Image Processing in C#

    What I want to do is as in the following.
    1. Load image from jpg/bmp file and display on the PictureBox or any other image control keeping image ratio
    2. Perform Image Processing, for example, zoom in/zoom out, change brightness/contrast
    Does any .NET class supports this? or should I implement it with my own code?
    If I should make my own code, is the PictureBox optimal control?

    Hmm.  If you don't know where to start then maybe the do-it-yourself approach is not going to work for you.
    Here's code for a simple control you can use to display an image with a transform matrix and a color matrix.
    using System;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    using System.Windows.Forms;
    class ImageControl : Control
    public Image Image
    get
    return image;
    set
    image = value;
    Invalidate();
    private Image image;
    public Matrix Transform
    get
    return transform;
    set
    transform = value;
    Invalidate();
    private Matrix transform = new Matrix();
    public ColorMatrix ColorMatrix
    get
    return colorMatrix;
    set
    colorMatrix = value;
    Invalidate();
    private ColorMatrix colorMatrix = new ColorMatrix();
    protected override void OnResize( EventArgs e )
    Invalidate();
    public ImageControl()
    this.DoubleBuffered = true;
    protected override void OnPaint( PaintEventArgs e )
    if( image == null ) return;
    e.Graphics.ResetTransform();
    e.Graphics.Transform = transform;
    ImageAttributes imageAttributes = new ImageAttributes();
    imageAttributes.SetColorMatrix(
    colorMatrix,
    ColorMatrixFlag.Default,
    ColorAdjustType.Bitmap );
    e.Graphics.DrawImage(
    image,
    new Rectangle( 0, 0, image.Width, image.Height),
    0, 0, image.Width, image.Height,
    GraphicsUnit.Pixel,
    imageAttributes );
    You can set a transformation matrix to do the zooming, panning, etc.  And set a color matrix to do simple contrast brightness adjustments.
    // Some example matrices
    float[][] colorMatrixElements = {
    new float[] {2, 0, 0, 0, 0}, // red scaling factor of 2
    new float[] {0, 1, 0, 0, 0}, // green scaling factor of 1
    new float[] {0, 0, 1, 0, 0}, // blue scaling factor of 1
    new float[] {0, 0, 0, 1, 0}, // alpha scaling factor of 1
    new float[] {.2f, .2f, .2f, 0, 1}}; // three translations of 0.2
    ColorMatrix colorMatrix = new ColorMatrix( colorMatrixElements );
    Matrix transform = new Matrix(
    1.5f, 0.0f, // horizontal scale of 1.5, 0
    0.0f, 0.5f, // 0, vertical scale of 0.5
    20.0f, 40.0f, // horizontal offset of 20, vertical offset of 40
    Contrast and brightness are performed together in a single matrix.  Contrast scales the output range and brightness is the offset.
    Zooming is just scale and offset.

  • Image processing with imaq vision with 2 webcams on the same computer

    Hi,
    I'm currently trying to set up 2 usb webcams (logitech quickcam for notebooks pro). I want to be able to have them both run simultaneously and do some image processing with the images that I get from both cameras with labview and imaq vision.
    As of right now, I'm having trouble getting both cameras to run at the same time. Any help would be gladly appreciated. Thanks.

    The USB IMAQ driver will not support running 2 USB cameras at a time (I believe it is a limitation of the DirectShow interface). You could open one camera, acuqire an image, close the reference to that camera and then do the same for the second camera.
    If you need simultaneous acquisition, look at possibly moving to 1394 cameras or analog cameras.

  • Image processing

    Sir,
       I am a beginner in LAB View am using labview 2013.i want to do image recognition using labview.can you please give me some basic programs on image processing and image recognition so that  i can understand atleast image acquisition and processing.i have only lab view software sir.should i download any other software for image processing? if so which software and is it free?please give me the link also sir.please help.
                         thank you.

    Hi,
    you can use LabVIEW to do image recognition. Here is an example of the basic functions to do so. You can also search some examples with the Example Finder.
    This little program looks for an image in a folder. He analyses each picture, and makes a comparision between the searched picture and the pictures in the folder.
    I hope it will help
    Giuliano Franchetto
    Student at the l'Ecole Nationale Supérieure des Mines de Saint-Etienne, cycle ISMIN (FRANCE)
    Attachments:
    img recognition.zip ‏43 KB

  • Image Processing in Bridge lost PSD originals HELP!

    I am somewhat new to using Adobe Bridge CS4 super frequently, I have been processing batches of images mostly using the 'Image Process' function under tools>photoshop>image processing. I was using it to watermark my photos and size them down. It worked great, did everything I wanted it too and made it's own JPEG folder with all my processed images. HOWEVER I just discovered that when I process them it is somehow is taking the original image and flattening it so it looks like a JPEG even though the file still thinks it's a PSD file. The size is small and all the layers are gone, basically it looks EXACTLY like the JPEG file I'd just made but it's the original file and it's still a PSD (in theory!). I've been racking my brain trying to figure out when I'm doing wrong here! Been all over the internet trying to find a similar situation and I've had no luck. Any thoughts? I'd really appreciate the help. These particular photos are ready to go to print, but I've got my watermark on them and can't exactly remove the layer that isn't there anymore! HELP
    Oona

    Yes I was converting images from PSD to JPEG with the image processing but I was running an action (within the same dialog box) to make the file sizes much smaller for easy upload to the web? Does running an action affect the original as well as the processed images?

  • Image Processing in Java (E-Book) Request

    Can anyone post the links for this e-book
    i think this e-book is helpful.so,iam requesting all of you.
    Image Processing in Java
    by Douglas A. Lyon
    Publisher: Prentice Hall PTR; Bk&CD-Rom edition (March 1, 1999)
    Language: English
    ISBN: 0139745777

    Check ebay, amazon or your local seller for a copy. Or if you want a free copy, write the author (maybe he's a generous fellow), but don't bother people on this forum with posts like this.
    - Travis

  • Image processing over wireless

    Hi,
    One of our subsidaries has a setup where continuous video stream is generated from certain application servers processing real time image processing.
    The setup goes this way; 3 PC's which run these image processing & are connected to a 3750G switch.
    This switch is uplinked to an access point which then carries all these over wireless to the image processing main server.
    About two weeks ago, when they tested this ,all 3 PC's had issues running together when operators viewed/worked upon the images on them.
    When either one or two of them is turned off, the rest works fine with no disturbance( intermediate stop & start of images ).
    Please help with suggestions on what could be the cause. I suspect bandwidth, but since this doesn't cover any WAN links, i doubt that bandwidth is actually the problem.
    Thanks in advance.

    It depends. QoS will help if your having congestion on the wired side. WMM QoS will help for over the air. I would look at the switch port and see if you see drops on both the map and rap side. You might just be over utilizing the backhaul. Remember that it is half duplex link so that can be an issue also. I had an install with regular AP's and 3gb video uploads within 30 minutes and the only way to achieve that is only allowing 4-5 clients per AP. the testing you have done seems to show that the max you can do over that link is 2. How much other traffic is using the wireless. Maybe try to isolate those traffic on a separate RAP/MAP pair using AP Groups.
    Sent from Cisco Technical Support iPhone App

  • Image processing from .txt file onto an intensity graph

    I am doing a mini project in my class and I was wondering if anyone could help me. It about image processing but I am bit stuck.
    Heres the idea:
    "An image is really nothing more than a 2D array of data. The value of every element in the array corresponds to the brightness of the image at that point.
    In this project you will create a VI which loads a 2D array of data and then displays it on the screen using the Intensity Graph. Three example files (boats.txt, gordon.txt and parrot.txt) are available on the module webpage that you can use. However, you can also use any other black and white image you like, but will need to convert it to a “text image” first. To do this you can use some software called “ImageJ” which is available on the computers and is free to download.
    You can vary the brightness of an image by adding the same value to every element in the array.
    The contrast of an image is adjusted by multiplying every element in the array by the same value. Using numerical controls and simple array mathematics, you should adjust the brightness and contrast of your displayed image.
    Some other ideas that you could try with image manipulation are:
    o Invert an image (change black to white and white to black)"
    First I am having problems putting my picture onto the graph. It is in the write file but the colours are not correct and the image has rotated 90 degrees. I will upload my VI so far when I get back onto my computer.
    Would really appricate the help! Thank you for reading

    Hi charlthedancer,
    Here is an example to get you started.
    Kind regards,
    GajanS
    Attachments:
    Test.vi ‏14 KB

  • Image Processing- comparing JPeg files

    Hi All,
    sorry for posting this question at this forum, but I could not find a separate forum for Image Processing. (although i could search for such forums, but i believe they are taken off.)
    I want to compare one input jpeg file with 10 existing files and find the closest match.
    can someone give me pointers to start with. i believe there are tools to achieve this.
    thanx n regards

    Not sure about the way you are using, but look at these links.
    Resizing Photos for Emailing
    http://www.apple.com/pro/tips/emailresize.html
    Resize!
    http://kstudio.net/
    PhotoToolCM
    http://www.pixture.com/software/macosx.php
    SmallImage
    http://www.iconus.ch/fabien/smallimage2/
    ImageTool
    http://www.macupdate.com/info.php/id/23281
    ImageWell
    http://www.xtralean.com/IWOverview.html
    Resize JPEG Files
    http://www.macworld.com/weblogs/macgems/2006/09/jpegresize/index.php
     Cheers, Tom

  • Image Processing Performance Issue | JAI

    I am processing TIFF images to generate several JPG files out of it after applying image processing on it.
    Following are the transformations applied:
    1. Read TIFF image from disk. The tiff is available in form of a PlanarImage object
    2. Scaling
         /* Following is the code snippet */
         PlanarImage origImg;
         ParameterBlock pb = new ParameterBlock();
         pb.addSource(origImg);
         pb.add(scaleX);
         pb.add(scaleY);
         pb.add(0.0f);
         pb.add(0.0f);
         pb.add(Interpolation.getInstance(Interpolation.INTERP_BILINEAR));
         PlanarImage scaledImage = JAI.create("scale", pb);3. Convertion of planar image to buffered image. This operation is done because we need a buffered image.
         /* Following is the code snippet used */
         bufferedImage = planarImage.getAsBufferedImage();4. Cropping
         /* Following is the code snippet used */
         bufferedImage = bufferedImage.getSubimage(artcleX, artcleY, 302, 70);The performance bottle neck in the above algorithm is step 3 where we convert the planar image to buffered image before carrying out cropping.
    The operation typically takes about 1120ms to complete and considering the data set I am dealing with this is a very expensive operation. Is there an
    alternate to the above mentioned approach?
    I presume if I can carry out the operation mentioned under step 4 above on a planr image object instead of buffered image, I will be able to save
    considerable processing time as in this case step 3 won't be required. (and that seems like the bottle neck). I have also noticed that the processing
    time of the operation mentioned in step 3 above is proportional to the size of the planar image object.
    Any pointers around this would be appreciated.
    Thanks,
    Anurag
    Edited by: anurag.kapur on Oct 4, 2007 10:17 PM
    Edited by: anurag.kapur on Oct 4, 2007 10:17 PM

    It depends on whether you want to display the data or not.
    PlanarImage (the subclass of all renderedOps) has a method that returns a Graphics object you can use to draw on the image. This allows you to do this like write on an image.
    PlanarImage also has a getAsBufferedImage that will return a copy of the data in a format that can be used to write to Graphics objects. This is used for simply drawing processed images to a display.
    There is also a widget called ImageCanvas (and ScrollingImagePanel) shipped with JAI (although it is not a committed part of the API). These derive from awt.Canvas/Panel and know how to render RenderedImage instances. This may use less copying/memory then getting the data as a BufferedImage and drawing it via a Graphics Object. I can't say for sure though as I have never used them.
    Another way may be to extend JComponent (or another class) and customize it to use calls to PlanarImage/RenderedOp instances directly. This can hep with large tiled images when you only want to display a small portion.
    matfud

  • Image processing Manupulation problem!!!

    Dear all,
    God Morning! hope u all are fine .. i have an issue regarding Image processing Manipulation.
    i want to give u all the details.. what i have done so far in java.
    i have used third party tool of java called ImageJ editor for image manipulation.i got the source of it i have made neccessary customization to store / fetch the image from my table (Database).now this editor is working fine when i click on open option from menu bar it fetches the image from database and after fetching it put the image on container where one can edit/ modify the image and save it back to the table.
    the above proceeds me to display or store the edited image on the database . now i just want to integrate the editor on browser ..
    how to call the class file when i click on the link on specified page and also how to pass parameter from jsp page to java class file.??
    please help me to sort out d problem
    "Thanks and regards"
    Jonty

    Increasing the contrast springs to mind.
    When used to extremes it is sometimes called
    'cartoonising'
    Suppose your image was in 16 colors, you could
    reasonably safely assume at least two are red, two
    are blue, two are yellow ect.
    With regards an algorithm you are looking to 'round
    off' the color values to (my suggestion only) the
    nearest 64 or even the nearest 127...
    Bamkinjust be careful of that ORANGE color. Orange is a tricky color to define in either RGB or HSB, and is very similar to red and yellow. A little change in either direction makes it difficult to distinguish from one or the other.
    my thought would be to try to force your image to only six colors. Then those colors (it wouldn't really matter if they were accurate, as long as they are correctly distinguished) would be easy to identify.
    - Adam

  • Image processing with BLOBS: how to write BufferedImage to a BLOB

    Hi everybody - thanks in advance for any input on that topic.
    I'm doing image processing using AWT and 2D. Images are stored in a RDBMS as BLOB Type, which I get using JDBC and convert to a BufferedImage using a JDBCImageDecoder.
    Now, I have my BufferedImage and I can process them using the appropriate filters (ConvolveOp e.g.)
    Writing the BufferedImages to disk or display on screen is easy. But I can't get to write them to a BLOB Object. Any Hint ?
    (Of course, I'm speaking of oracle.sql.BLOB objects, not java.sql.Blob).
    Thanks and have a nice day

    Billy,
    Thank you for your answer. I have two questions.
    First what that means "Bob's your uncle ?" I'm a french man, not used to english special sentences ou jargon. Would enjoy to know !
    Second, I have created a PL/SQL procedure to update my table. I face a problem.
    I want to initialize b_lob with the img_blob value but I get an error : "ORA-22922: nonexistent LOB value". WHere do my error comes from ? I am fairly new in this stuff of BLOB.
    Below my procedure.
    Thank for your kind help.
    Christian.
    create or replace
    procedure insert_img as
    f_lob bfile;
    b_lob blob;
    loops number default 0 ;
    lines number default 0;
    stmt varchar2(4000);
    cursor c1 is select img_blob, file_name, pk from photos FOR UPDATE ;
    begin
    NULL;
    dbms_output.enable(900000);
    stmt := 'SELECT COUNT(*) FROM PHOTOS';
    EXECUTE IMMEDIATE stmt INTO LINES ;
    for ligne in c1 loop
    exit when loops >= lines ;
    loops := loops+1;
    update photos set img_blob= empty_blob() where CURRENT OF C1;
    -- return img_blob into b_lob;
    b_lob := ligne.img_blob ;
    f_lob := bfilename( 'MY_FILES', ligne.file_name );
    IF (DBMS_LOB.FILEEXISTS(f_lob) != 0)
    THEN
          DBMS_OUTPUT.PUT_LINE('BFILE exist: '|| ligne.file_name || ', ligne :'|| ligne.pk);
          dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);
          dbms_lob.loadfromfile( b_lob, f_lob, dbms_lob.getlength(f_lob) );
          dbms_lob.fileclose(f_lob);
          dbms_output.put_line('ligne.pk :' || ligne.pk || ', lines : ' || lines || ', loops ' || loops);
      ELSE
        DBMS_OUTPUT.PUT_LINE('BFILE does not exist: '|| ligne.file_name || ', ligne :'|| ligne.pk);
      END IF;
    end loop;
    commit;
    end insert_img;

Maybe you are looking for

  • Prevent multiple users accessing the same form

    hi, i am working in forms i have a requirement like this if more than one user are using the same form and try to access the same record then the second user should not be able to do transaction he should be popped up with a msg saying that other use

  • Error message from Trend protection software about a dangerous page.

    Every time I open Firefox lately I get an warning from trend protection software that I'm tying to go to a dangerous page. The warning shows as I exiting Firefox. The address is always a very long string of characters.

  • 17" Powerbook, 1ghz and a 30" ACD

    I have a 17" powerbook, and drive my ACD 23" just dandy, I just got a 30" in hopes of getting a G5 soon. Can I drive my 30" with a limited amount of pixels and still use it, Like with a black area around it, cause I know the 30" is not compatable at

  • Re : criterias  that should be addressed during a signoff of funcs specs

    hi , we are having signoffs for functional specs on MM in bw. what concerns should be addressed during the meeting as a bw developer ex: volume of data coming from source systems, how many source systems , data retentions etc. could any one pls adres

  • Software demo with next buttons and auto-mouse actions is confusing to viewers

    Hi, I created presentation tools for my co-workers to do a road show type thing of our software. On some slides, they must click a next button to advance, but not on others- this is intentional. However, we got the feedback that users find it confusi