Highlighted

How to crop each frame of scanned 8mm film?

New Here ,
Apr 11, 2020

Copy link to clipboard

Copied

Hello, my name is Carl. I have a question for you and i hope you can help me. The thing is that I have a super 8 film movie that i wanted to digitize, looking on the web I found this guide that helped me a lot and I decided to try out. 

http://keneckert.com/kenfilms/telecine/index.html

I have scanned the film and i have used the script in the guide to straighten the pictures just like the guide, the problem now is that I don't know how to crop each frame from the image, i tried using the script but it doesn't work for me since the only thing that does is to create a selection that i have to manually put over each frame every time i need to crop, and since the film is over 3000 frames it would be very dificult to do it.

Because of that, I would like to know if there is a better way to do it or if you could tell me how to solve this issue.

Best regards.

Adobe Community Professional
Correct answer by Stephen_A_Marsh | Adobe Community Professional

You could see if the following script works for you, it was not designed specifically for the task at hand, but it may just work if the frames are evenly spaced/divisible into the canvas width. You would enter say 3000 for the number of columns and 1 for the number of rows. That being said, I would crop down a copy to have only save 10 or 20 frames and then test on the copy first. If this does work for you, it is easy enough to add an extra line of code to automatically rotate the final crops if required.

 

 

//community.adobe.com/t5/photoshop/dividing-big-document-to-smaller-ones/m-p/9311087
// split image into x times y segments and save them as psds;
// 2017, use it at your own risk;

// 2020 - Modified by Stephen Marsh, adding prompts, save alert, saved doc test.

#target photoshop

/* Start Unsaved Document Error Check - Part A: Try */
unSaved();

function unSaved() {
    try {
        activeDocument.path;
        /* Finish Unsaved Document Error Check - Part A: Try */

        /* Main Code Start */

        if (app.documents.length > 0) {
            var originalUnits = app.preferences.rulerUnits;
            app.preferences.rulerUnits = Units.PIXELS;
            // document;
            var myDocument = app.activeDocument;
            var theName = myDocument.name.match(/(.*)\.[^\.]+$/)[1];
            var thePath = myDocument.path;
            var theCopy = myDocument.duplicate("copy", false);
            // Original X input
            var theXinput = prompt("Enter the number of columns across:", 2);
            // Remove anything that is not a digit or full point
            var theXinputCleaner = theXinput.replace(/[^\d\.]/, '');
            // Convert to integer
            var theXtoInteger = parseInt(theXinputCleaner, 10);
            // Final result
            var theX = theXtoInteger;
            // Original Y input
            var theYinput = prompt("Enter the number of rows down:", 2);
            // Remove anything that is not a digit or full point
            var theYinputCleaner = theYinput.replace(/[^\d\.]/, '');
            // Convert to integer
            var theYtoInteger = parseInt(theYinputCleaner, 10);
            // Final result
            var theY = theYtoInteger;
            // Canvas Division
            var xFrac = myDocument.width / theX;
            var yFrac = myDocument.height / theY;
            // psd options;
            psdOpts = new PhotoshopSaveOptions();
            psdOpts.embedColorProfile = true;
            psdOpts.alphaChannels = true;
            psdOpts.layers = true;
            psdOpts.spotColors = true;
            // create folder;
            var folderName = thePath + "/" + theName + "_" + theX + "x" + theY;
            if (Folder(folderName).exists == false) {
                Folder(folderName).create()
            };
            //save jpgs;
            for (var n = 1; n <= theY; n++) {
                for (var m = 1; m <= theX; m++) {
                    cropTo((m - 1) * xFrac, (n - 1) * yFrac, m * xFrac, n * yFrac);
                    var theNewName = theName + "_" + bufferNumberWithZeros(m, 3) + "_" + bufferNumberWithZeros(n, 3);
                    theCopy.saveAs((new File(folderName + "/" + "_" + theNewName + ".psd")), psdOpts, true);
                    theCopy.activeHistoryState = theCopy.historyStates[0];
                }
            };
            theCopy.close(SaveOptions.DONOTSAVECHANGES);
            // reset;
            app.preferences.rulerUnits = originalUnits;
        };
        ////// buffer number with zeros //////
        function bufferNumberWithZeros(number, places) {
            var theNumberString = String(number);
            for (var o = 0; o < (places - String(number).length); o++) {
                theNumberString = String("0" + theNumberString)
            };
            return theNumberString
        };
        ////// crop //////
        function cropTo(x1, y1, x2, y2) {
            // =======================================================
            var desc7 = new ActionDescriptor();
            var desc8 = new ActionDescriptor();
            var idPxl = charIDToTypeID("#Pxl");
            desc8.putUnitDouble(charIDToTypeID("Top "), idPxl, y1);
            desc8.putUnitDouble(charIDToTypeID("Left"), idPxl, x1);
            desc8.putUnitDouble(charIDToTypeID("Btom"), idPxl, y2);
            desc8.putUnitDouble(charIDToTypeID("Rght"), idPxl, x2);
            var idRctn = charIDToTypeID("Rctn");
            desc7.putObject(charIDToTypeID("T   "), idRctn, desc8);
            desc7.putUnitDouble(charIDToTypeID("Angl"), charIDToTypeID("#Ang"), 0.000000);
            desc7.putBoolean(charIDToTypeID("Dlt "), false);
            desc7.putEnumerated(stringIDToTypeID("cropAspectRatioModeKey"), stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("pureAspectRatio"));
            desc7.putBoolean(charIDToTypeID("CnsP"), false);
            executeAction(charIDToTypeID("Crop"), desc7, DialogModes.NO);
        };
        alert('PSD Files saved to: ' + folderName);

        /* Main Code Finish */

        /* Start Unsaved Document Error Check - Part B: Catch */
    } catch (err) {
        alert('An image must be both open and saved before running this script!')
    }
}
/* Finish Unsaved Document Error Check - Part B : Catch */

 

 

LAST EDITED: 15th May 2020 – Refined the code for the prompts

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

TOPICS
Actions and scripting, Problem or error, Windows

Views

831

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

How to crop each frame of scanned 8mm film?

New Here ,
Apr 11, 2020

Copy link to clipboard

Copied

Hello, my name is Carl. I have a question for you and i hope you can help me. The thing is that I have a super 8 film movie that i wanted to digitize, looking on the web I found this guide that helped me a lot and I decided to try out. 

http://keneckert.com/kenfilms/telecine/index.html

I have scanned the film and i have used the script in the guide to straighten the pictures just like the guide, the problem now is that I don't know how to crop each frame from the image, i tried using the script but it doesn't work for me since the only thing that does is to create a selection that i have to manually put over each frame every time i need to crop, and since the film is over 3000 frames it would be very dificult to do it.

Because of that, I would like to know if there is a better way to do it or if you could tell me how to solve this issue.

Best regards.

Adobe Community Professional
Correct answer by Stephen_A_Marsh | Adobe Community Professional

You could see if the following script works for you, it was not designed specifically for the task at hand, but it may just work if the frames are evenly spaced/divisible into the canvas width. You would enter say 3000 for the number of columns and 1 for the number of rows. That being said, I would crop down a copy to have only save 10 or 20 frames and then test on the copy first. If this does work for you, it is easy enough to add an extra line of code to automatically rotate the final crops if required.

 

 

//community.adobe.com/t5/photoshop/dividing-big-document-to-smaller-ones/m-p/9311087
// split image into x times y segments and save them as psds;
// 2017, use it at your own risk;

// 2020 - Modified by Stephen Marsh, adding prompts, save alert, saved doc test.

#target photoshop

/* Start Unsaved Document Error Check - Part A: Try */
unSaved();

function unSaved() {
    try {
        activeDocument.path;
        /* Finish Unsaved Document Error Check - Part A: Try */

        /* Main Code Start */

        if (app.documents.length > 0) {
            var originalUnits = app.preferences.rulerUnits;
            app.preferences.rulerUnits = Units.PIXELS;
            // document;
            var myDocument = app.activeDocument;
            var theName = myDocument.name.match(/(.*)\.[^\.]+$/)[1];
            var thePath = myDocument.path;
            var theCopy = myDocument.duplicate("copy", false);
            // Original X input
            var theXinput = prompt("Enter the number of columns across:", 2);
            // Remove anything that is not a digit or full point
            var theXinputCleaner = theXinput.replace(/[^\d\.]/, '');
            // Convert to integer
            var theXtoInteger = parseInt(theXinputCleaner, 10);
            // Final result
            var theX = theXtoInteger;
            // Original Y input
            var theYinput = prompt("Enter the number of rows down:", 2);
            // Remove anything that is not a digit or full point
            var theYinputCleaner = theYinput.replace(/[^\d\.]/, '');
            // Convert to integer
            var theYtoInteger = parseInt(theYinputCleaner, 10);
            // Final result
            var theY = theYtoInteger;
            // Canvas Division
            var xFrac = myDocument.width / theX;
            var yFrac = myDocument.height / theY;
            // psd options;
            psdOpts = new PhotoshopSaveOptions();
            psdOpts.embedColorProfile = true;
            psdOpts.alphaChannels = true;
            psdOpts.layers = true;
            psdOpts.spotColors = true;
            // create folder;
            var folderName = thePath + "/" + theName + "_" + theX + "x" + theY;
            if (Folder(folderName).exists == false) {
                Folder(folderName).create()
            };
            //save jpgs;
            for (var n = 1; n <= theY; n++) {
                for (var m = 1; m <= theX; m++) {
                    cropTo((m - 1) * xFrac, (n - 1) * yFrac, m * xFrac, n * yFrac);
                    var theNewName = theName + "_" + bufferNumberWithZeros(m, 3) + "_" + bufferNumberWithZeros(n, 3);
                    theCopy.saveAs((new File(folderName + "/" + "_" + theNewName + ".psd")), psdOpts, true);
                    theCopy.activeHistoryState = theCopy.historyStates[0];
                }
            };
            theCopy.close(SaveOptions.DONOTSAVECHANGES);
            // reset;
            app.preferences.rulerUnits = originalUnits;
        };
        ////// buffer number with zeros //////
        function bufferNumberWithZeros(number, places) {
            var theNumberString = String(number);
            for (var o = 0; o < (places - String(number).length); o++) {
                theNumberString = String("0" + theNumberString)
            };
            return theNumberString
        };
        ////// crop //////
        function cropTo(x1, y1, x2, y2) {
            // =======================================================
            var desc7 = new ActionDescriptor();
            var desc8 = new ActionDescriptor();
            var idPxl = charIDToTypeID("#Pxl");
            desc8.putUnitDouble(charIDToTypeID("Top "), idPxl, y1);
            desc8.putUnitDouble(charIDToTypeID("Left"), idPxl, x1);
            desc8.putUnitDouble(charIDToTypeID("Btom"), idPxl, y2);
            desc8.putUnitDouble(charIDToTypeID("Rght"), idPxl, x2);
            var idRctn = charIDToTypeID("Rctn");
            desc7.putObject(charIDToTypeID("T   "), idRctn, desc8);
            desc7.putUnitDouble(charIDToTypeID("Angl"), charIDToTypeID("#Ang"), 0.000000);
            desc7.putBoolean(charIDToTypeID("Dlt "), false);
            desc7.putEnumerated(stringIDToTypeID("cropAspectRatioModeKey"), stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("pureAspectRatio"));
            desc7.putBoolean(charIDToTypeID("CnsP"), false);
            executeAction(charIDToTypeID("Crop"), desc7, DialogModes.NO);
        };
        alert('PSD Files saved to: ' + folderName);

        /* Main Code Finish */

        /* Start Unsaved Document Error Check - Part B: Catch */
    } catch (err) {
        alert('An image must be both open and saved before running this script!')
    }
}
/* Finish Unsaved Document Error Check - Part B : Catch */

 

 

LAST EDITED: 15th May 2020 – Refined the code for the prompts

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

TOPICS
Actions and scripting, Problem or error, Windows

Views

832

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Apr 11, 2020 0
Adobe Community Professional ,
Apr 11, 2020

Copy link to clipboard

Copied

Can you provide an original resolution crop from the scan, starting from the original upper left position of the scan and say including 3 or 5 frames? If too large to attach to your reply, you can use your CC account to share a link to the file, or a file-sharing service such as DropBox, WeTransfer etc.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 11, 2020 0
Adobe Community Professional ,
Apr 11, 2020

Copy link to clipboard

Copied

You could see if the following script works for you, it was not designed specifically for the task at hand, but it may just work if the frames are evenly spaced/divisible into the canvas width. You would enter say 3000 for the number of columns and 1 for the number of rows. That being said, I would crop down a copy to have only save 10 or 20 frames and then test on the copy first. If this does work for you, it is easy enough to add an extra line of code to automatically rotate the final crops if required.

 

 

//community.adobe.com/t5/photoshop/dividing-big-document-to-smaller-ones/m-p/9311087
// split image into x times y segments and save them as psds;
// 2017, use it at your own risk;

// 2020 - Modified by Stephen Marsh, adding prompts, save alert, saved doc test.

#target photoshop

/* Start Unsaved Document Error Check - Part A: Try */
unSaved();

function unSaved() {
    try {
        activeDocument.path;
        /* Finish Unsaved Document Error Check - Part A: Try */

        /* Main Code Start */

        if (app.documents.length > 0) {
            var originalUnits = app.preferences.rulerUnits;
            app.preferences.rulerUnits = Units.PIXELS;
            // document;
            var myDocument = app.activeDocument;
            var theName = myDocument.name.match(/(.*)\.[^\.]+$/)[1];
            var thePath = myDocument.path;
            var theCopy = myDocument.duplicate("copy", false);
            // Original X input
            var theXinput = prompt("Enter the number of columns across:", 2);
            // Remove anything that is not a digit or full point
            var theXinputCleaner = theXinput.replace(/[^\d\.]/, '');
            // Convert to integer
            var theXtoInteger = parseInt(theXinputCleaner, 10);
            // Final result
            var theX = theXtoInteger;
            // Original Y input
            var theYinput = prompt("Enter the number of rows down:", 2);
            // Remove anything that is not a digit or full point
            var theYinputCleaner = theYinput.replace(/[^\d\.]/, '');
            // Convert to integer
            var theYtoInteger = parseInt(theYinputCleaner, 10);
            // Final result
            var theY = theYtoInteger;
            // Canvas Division
            var xFrac = myDocument.width / theX;
            var yFrac = myDocument.height / theY;
            // psd options;
            psdOpts = new PhotoshopSaveOptions();
            psdOpts.embedColorProfile = true;
            psdOpts.alphaChannels = true;
            psdOpts.layers = true;
            psdOpts.spotColors = true;
            // create folder;
            var folderName = thePath + "/" + theName + "_" + theX + "x" + theY;
            if (Folder(folderName).exists == false) {
                Folder(folderName).create()
            };
            //save jpgs;
            for (var n = 1; n <= theY; n++) {
                for (var m = 1; m <= theX; m++) {
                    cropTo((m - 1) * xFrac, (n - 1) * yFrac, m * xFrac, n * yFrac);
                    var theNewName = theName + "_" + bufferNumberWithZeros(m, 3) + "_" + bufferNumberWithZeros(n, 3);
                    theCopy.saveAs((new File(folderName + "/" + "_" + theNewName + ".psd")), psdOpts, true);
                    theCopy.activeHistoryState = theCopy.historyStates[0];
                }
            };
            theCopy.close(SaveOptions.DONOTSAVECHANGES);
            // reset;
            app.preferences.rulerUnits = originalUnits;
        };
        ////// buffer number with zeros //////
        function bufferNumberWithZeros(number, places) {
            var theNumberString = String(number);
            for (var o = 0; o < (places - String(number).length); o++) {
                theNumberString = String("0" + theNumberString)
            };
            return theNumberString
        };
        ////// crop //////
        function cropTo(x1, y1, x2, y2) {
            // =======================================================
            var desc7 = new ActionDescriptor();
            var desc8 = new ActionDescriptor();
            var idPxl = charIDToTypeID("#Pxl");
            desc8.putUnitDouble(charIDToTypeID("Top "), idPxl, y1);
            desc8.putUnitDouble(charIDToTypeID("Left"), idPxl, x1);
            desc8.putUnitDouble(charIDToTypeID("Btom"), idPxl, y2);
            desc8.putUnitDouble(charIDToTypeID("Rght"), idPxl, x2);
            var idRctn = charIDToTypeID("Rctn");
            desc7.putObject(charIDToTypeID("T   "), idRctn, desc8);
            desc7.putUnitDouble(charIDToTypeID("Angl"), charIDToTypeID("#Ang"), 0.000000);
            desc7.putBoolean(charIDToTypeID("Dlt "), false);
            desc7.putEnumerated(stringIDToTypeID("cropAspectRatioModeKey"), stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("pureAspectRatio"));
            desc7.putBoolean(charIDToTypeID("CnsP"), false);
            executeAction(charIDToTypeID("Crop"), desc7, DialogModes.NO);
        };
        alert('PSD Files saved to: ' + folderName);

        /* Main Code Finish */

        /* Start Unsaved Document Error Check - Part B: Catch */
    } catch (err) {
        alert('An image must be both open and saved before running this script!')
    }
}
/* Finish Unsaved Document Error Check - Part B : Catch */

 

 

LAST EDITED: 15th May 2020 – Refined the code for the prompts

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 11, 2020 0
New Here ,
May 31, 2020

Copy link to clipboard

Copied

Hi, following up on this with a slightly related query. 

My goal: to give photoshop raw scan files of 35mm film strips and have photoshop divide, separate and save the photos in to individual files. I always scan at 5 columns by 2 rows.

 

This script you've shared is doing a fanstastic job at splitting my photos, but requires my input. This user input removes automation as I am hoping to apply this script to multiple scan files at once. I need your help with this since I'm not a programmer, how do I edit this script so it knows to divide the images 5x2?

 

Thank you for your help!

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
May 31, 2020 0
Adobe Community Professional ,
May 31, 2020

Copy link to clipboard

Copied

I modified the original code to be interactive, however, I referenced the original script in the comment at the head of the code, so it is easier to just point you back to the original source of the code that uses static values which would be more applicable for unattended batch processing:

 

https://community.adobe.com/t5/photoshop/dividing-big-document-to-smaller-ones/td-p/9311087?page=1

 

Copy the 67 lines of code marked as the correct answer (thanks to c_pfaffenbichler). Copy from the lines starting with the // double forward slash comment, down to the final };

 

Then change lines 14 and 15

 

from:

 

 

 

var theX = 2;
var theY = 2;

 

 

 

to:

 

 

 

var theX = 5;
var theY = 2;

 

 

 

or vice/versa and you should be good to go!

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
May 31, 2020 0
New Here ,
May 31, 2020

Copy link to clipboard

Copied

Fabulous, this works exactly as needed. Thank you!

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
May 31, 2020 0
New Here ,
Sep 23, 2020

Copy link to clipboard

Copied

Hi, I have a similar request. I have 35mm film strips of 6 frames each. What will my variable be set to? I tried running the script with the following and didn't have any success:

 

var theX = 5;

var theY = 2;

 

Another question is, where does the script save the final output files?

 

Thanks!

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Sep 23, 2020 0
New Here ,
Sep 23, 2020

Copy link to clipboard

Copied

Nevermind! Was able to figure both of my issues out! Works great, thanks! Is there any way to export the files as jpgs and not psd's? 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Sep 23, 2020 0
Adobe Community Professional ,
Apr 11, 2020

Copy link to clipboard

Copied

Is the only requirement to crop every image the same way?

Is there any other processing that needs to be done, like stabilizing jitter?

And each individual frame is a separate still image file?

 

[I deleted the rest of my own post because it was barking up the wrong tree 🙂 ]

 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 11, 2020 0
Adobe Community Professional ,
Apr 11, 2020

Copy link to clipboard

Copied

Hi Conrad, If I understand the OP, it's a single filmstrip of over 3000 image frames, I believe similar to:

 

strip-sideways

 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 11, 2020 1
New Here ,
Apr 11, 2020

Copy link to clipboard

Copied

Hi Stephen, yes that is correct, sorry if i wasn't very clear or specific about what i need to do, this is the first time i'm doing this with super 8 film, furthermore, english is not my first language.

I will upload a sample of the image that the scanner made and one example of a frame of the film that i need to extract from each image strip in order to make a video.

img660 copy.jpgimg660 copy-frame.jpg

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 11, 2020 0
Most Valuable Participant ,
Apr 11, 2020

Copy link to clipboard

Copied

I hard for me to believe the you have a single scan that contains 3000 super 8mm frames.   I would think  the you would have many scans of super 8mm film strips that contains some number of frames that have been straighten via a Photoshop. 

I wrote a script to do that a while back for some user here. However, my script required the user to manually set two color sample points before running the script so it would be able to straighten a single strip. Extracting the frames contents was not addressed. could I use two magic wand selections to straighten an image 

 

If a scanned strip is perfectly straightened you may be able to perfectly select all the frames content in the strip and crop. So all you will have is a image strip.  No borders no sprocket holes.  If you can do that you should be able to dice that image strip with an Action that uses a script I posted a while back

how to slice a very large poster. 

 

 

You would still have to crop each film strip manually and run the action which has an interactive step where you set the guide line grid the number of rows and columns.  In your Image strip either a single row or column and some number of Frame.   If all your strips have the same number of frames.  You can rerecord the interactive step. Set the row or column to one and the other to the number of frames in the image strip.  Remove the check mark from the step dialog box. Then the action will be fully automatic

JJMack

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 11, 2020 1
New Here ,
Apr 11, 2020

Copy link to clipboard

Copied

Hello, yes, probably it is the same person that i mentioned in the link that i posted. I actually used the same script in order to straighten the images as you mention, which was relatively easy, the next step would be to extract each frame in order to make a movie, but i cannot find a propper way to do it fast or without being so time consuming.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 11, 2020 0
Most Valuable Participant ,
Apr 12, 2020

Copy link to clipboard

Copied

Did you try to dice a strip up  using the information in the link I posted? The action using a script...?

It look like it would work to me I just cropped your strip and set the guides

image.png

 

 

If all your film strips have 16 frames you can set your rectangle marquee tool to a fixed size for the 16 frames. make that selection and position it around the frame then crop. when you dice the up withe the action all frames will be the same size.

JJMack

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2020 0
New Here ,
Apr 12, 2020

Copy link to clipboard

Copied

Thanks for the help, I have seen that you are the same person that helped the guy in the first link i posted, I have tried the method you mention and it the thing that worked for me was the script that straightens the image using the color sampler inside the sprocket hole. It is true that each image contains 16 frames, however the problem is that the method that i used to scan was not perfect and there are sections of previous frames in the top and at the bottom of the image so because of this if i used the guides it would take me a lot of time since i would have to manually adjust the guides so that they fit properly in each frame. I think that a method using the sproket holes to find the correct size and to crop it would work but i don't know how to do it.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2020 0
Adobe Community Professional ,
Apr 12, 2020

Copy link to clipboard

Copied

So, you have multiple strips of 16 up frames?

 

The attached animation is the result of the script that I previously posted, using a column of 1 and rows of 16 as the input.

 

Imported-Layers.gif

 

The image jumps around a lot as the total canvas size was not evenly divisible by 16.

 

Perhaps another method that used the sprocket hole to base the crop on would be better. Video is not my area, I keep thinking that there must be better, dedicated tools for this.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2020 0
New Here ,
Apr 12, 2020

Copy link to clipboard

Copied

Thank you for the help, I tested this with a couple other images but it would not work because the frames on the scanned image  sometimes are in different position and the result of the script are frames cut in half or not complete frames shown. As you mention, the best method seems to be something based on the sprocket hole but I cannot figure it out how to do it in a more automatic way, I could just use marquee tool to select each frame but it would take me forever since i have over 300 scanned images each containing a film strip of 16 frames.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2020 0
Most Valuable Participant ,
Apr 12, 2020

Copy link to clipboard

Copied

If you are going automate the extraction of the frame  you will need automated it with a process like you used to straighten your film stripe with a script. A user assisted process an interactive process.  You would need to set an active rectangle  selection around the 16 frames in the strip. One set you can have a script for the rest of the extraction process.  Since all you strips have 16 full frames an action could set the correct size selection and put you in control to drag the select to the proper location where press enter. The action continues to play, it crops to the selection and runs a script to cut out the frames. 

 

To automate the whole process would require you to program a content aware AI process  that would extract the frames.  You would also include the straighten  process in you AI plug-in. The AI process would straighten, Crop to the full frames the dice out the frames

 

JJMack

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2020 0