The CineFrameCatcher is a program to support the digitization of cine films in 8 mm, 9,5 mm (Pathé) and 16 mm format. 9.5 mm and 16 mm formats are currently implemeted but not fully tested, because I have not the ressources to do that. At that point I want to thank Lawrence Cockell who supported me especially in the area of Pathé and Arduino testing.
The frames of a cine film are caught separately by a video capturing device (digital microscope or similar) and stored with consecutive numbers in a frames directory to allow later (in a separate step) to generate a video in SD or HD format with a video generation program (e.g. VirtualDub together with AviSynth)
to the table of contentTo catch the frames of a cine film you need a special hardware which is unfortunately not available as fully assembled device that can be bougth. It must be crafted by yourself, but this is not very difficult if you have a little crafting experiance.
As components to build the device you need:
1. A digital microscope.
2. A stepper motor to move the film through the transportation unit
3. A stepper controller
4. A sprocket wheel with 8, 10, 16, 20 or 25 sprockets
5. A illumination unit.
6. A power supply.
7. A 5 Volt DC (direct current) motor (optional)- probably with a gearbox .
8. A 4 way focusing rail
The microscope is placed above the frame window using the 4
way focusing rail. It can be moved precisely in all 3 dimensions with
this device. This allows an exact positioning above the frame window
and a perfect focusing of the lens can be achieved. Good focusing is
very important, because the depth of field is minimal for a focus
length of only several millimeters. You must be able to precisely move
the microscope up and down within a range of 100 to 200 micrometer.
The film is guided below the microscope and above the illumination chamber on a film guidance rail. For the film guide see image below.
Below the film guidance and the microscope the light chamber is
located. Inside the light chamber there is the illumination unit (light
bulb). Between light bulb and frame window you may have to apply a
diffuser (e.g. a piece of bright white paper - 80 to 160 gr) to achieve
an evenly illuminated area as background for the frame to be grabbed.
Left of the light chamber there is the transportation unit located. It is shown here whit a grabber. Instead of the grabber you can also use the sprocket wheel which is like the grapper driven by the stepper motor.
Even more to the left you see the capture reel which is driven here by a transmission. If you like, a 5 Volt DC motor can also be used. It will be controlled via the StepRocker. The CineFrameCatcher provides the required electronic signals to the StepRocker.
to the table of contentThe CineFrameCatcher is a Windows application developed using MS Visual Studio Community 2019, C# as
programming
language and .NET Framework 4.6.1 as class library (the runtime components of .NET 4.6.1 or better must be installed, to run the
application properly).
The components of the Accord .Net Library 3.8.0 must also be installed (the required components are contained in
the distribution file) and if the Arduino board shall be used, the components of the Solid.Arduino Library (it is
also contained int the distribution file) must be installed as well.
The application can be run on a computer with a MS Windows operating
system (Windows 7 or higher, preferably Windows 10 64 Bit). You can the
application also install under a Virtual Machine (Oracle Virtual Box or
VMWare ...).
The application is delivered via an installation file compressed by 7-Zip. To install the application, it is
sufficient
to unpack the installation file into an installation directory of your choice, e.g. to
C:/Windows/Programs/CineFrameCatcher.
The Windows registry is not used.
For potential updates it is normally sufficient to replace the CineFrameCatcher.EXE file in the installation
directory.
De-Installation is simply done by deleting the installation directory with all it's content.
For the program invocation you can create a desktop shortcut.
Suitable icons to identify the shortcut easily are provided via the
installation file.
Annotation: The application is protected against multiple invocation. It can be executed on a computer only
once. An attempt to run the
application simultaneously a second time will be postponed, until the first invocation has been terminated.
In the desktop shortcut you can provide three invocation parameters:
To set a new and meaningfull desktop icon in the shortcut, you can use the icons provided in the installation directoy.
The application is started either
As already mentioned, the application can be active only once to prevent images that should be grabbed to be overwritten.
to the table of contentThe first window presented is the main window. It provides a menu bar and a message field as well as all required input fields to control the frame capturing, grouped into 3 categories.
the menu bar contains three main groups: 1. File, 2. Options and 3. Help
The menu "File" comprises 3 entries.
The menu "Options" comprises 7 entries.
The menu "Help" comprises 4 entries.
The presentation language of the application can already be defined in the invocation parameter. But if - due to special reasons - a different presentation language should be used, you can via this menu selection switch to the newly desired language. Currently (as of June 2020) only two languages are implemented Deutsch (DE) and English (EN).
If this menu item is clicked, the input fields ( new PID ) needed to create a new project are shown in the "Project
Parameters" section.
You can enter the 4 character idetification of the new project in the new PID field and the required folders are created in the base
directory.
Via this menu entry the running program will be terminated. All open windows of the application will be closed too and the actually valid input values are saved in the applications INI file located in the installation folder.
Via this menu item a file is generated with the parameters needed
to generate the video clip exploiting VirtualDub in combination with
AviSynth.
The file with a name composed from the project ID and the actual Frames
subfolder is located in the project's VIDEO folder. It can be used as
video input file in the VirtualDub "File-> Open video file" menu item.
This menu entry calls a message box which shows the actual content of the INI file to allow the verification of these values. (The constants for the first field initialization are based on the saved values of the preceding session). If a new project (different from the previous one) is started, you can check, if the values used for initiation are correct or if they have to be adjusted.
This menu entry causes the deletion of all images in the actually active image subdirectory. The request must be confirmed via pressing OK in the upcoming message box. Only the existing files are deleted. Potentially existing subdirectories will be kept.
Enable loggingVia this menu item you can enable the logging of application events if logging is currently not active. This is only possible, if the logging file is not reserved by a different process, e.g. a text editor like Notepad or Notepad++
Disable loggingVia this menu you can disable a currently active logging function.
Show logfile contentAs a logfile normally contains a lot of entries, this menu entry does not really present the content of the logfile, It reminds you, that you can view the logfile with a text editor like Notepad or Notepad++.
Clear logfile contentVia this menu item you should be able to erase the complete content of the active log file.
This menu item tells you how you can easily position the stepper motor to a desired angle even if it is blocked by a holding moment. This is especially useful if you use a grabber instead of a sprocket hole.
Via this menu entry the CineFrameCatcher Help file is presented in the web-browser format.
Via this menu entry it can be checked if the most recent version is installed. The computer must be connected to the internet. If a new version is present in the internet, also during the application start a message is presented in a message box..
This dialog shows the most important information about the CineFrameCatcher application
The project parameter pane shows all input fields related to and describing the catching project.
The pane has 3 buttons. These are:
The transport parameter pane shows all input fields related to and describing the film transportation during Catching project performance.
By clicking the button Arduino/Adafruit cmd you generate the Arduino command form the defined parameters. You can see the generated command in the message field displayed at the window top.
The video device parameter pane contains the input fields and buttons to describe the required parameters and actions for the frame grabbing.
To control the frame grabbing there are some additional parameters provided. These parameters are:
The panel has 4 buttons in the last row of the pane.
You should select the target resolution before pressing this button, because as soon as the video device and the camera resolution is set, the video device ist automatically prepared (warmed up) and the frame definition dialog is started after a certain warming up time. If the colors of the image still seem not to be fully OK in t he upcoming frame definition pane, you should press the "c Img. position" button in the window. See later !
After the video capture device is started and warmed up, the frame size
and color definition window is presented. It shows the first grabbed
image as seen by the video catching device (the microscope).
If no image could be scanned (probably because the microscope is not switched on) a notification image
appears that informs you about what might have happened. I also might help to adjust the brightness threshold (default value 220).
This is the color at which the sprocket hole evaluation process decides, which pixels are considered to be bright or dark.
A sprocket hole border is asumed if there is a significant change in the brightness of consecutive pixels.
Special care has been taken, if a sprocket wheel is used for transportation and if Pathé footage has to be scanned.
9.5 mm films have the sprocket hole in the middle of the film and not at the left border.
The left image shows the image position,
that should be achieved as start position. The blue area is the definition window rectangle.
Due to the inaccuracy of the stepper motor it might happen, that the scanned images move
up and down. Therefore the magnification should selected in such a way that 2 sprocket holes (or parts thereoff)
allways will be visible .
You may see during scanning positions of the sprocket holes that are a combination of 2 red or a a red and a green hole as shown
in the right image.
Similar things can happen for film types, where the sprocket holes are located at the left windows side but at the image separation line (16mm or N8 / R8).
If no pre-stabilisation is pssible (no sprocket hole visible or sprocket hole misplaced), it is sufficient to set the magnification in such a way, that no borders appear in the picture box.
With the microscope you adjust the focusing and the magnification. With the focusing rails you correct the image position ( up, down., left, right, eventually a rotation). If the result is acceptable, you can terminate the correction process and return to the definition dialog by pressing the button "stop image positioning" in the left lower corner of the window.
As we deal with very tiny position changes, this task is not easy.
You have to perform this process very
accurately and it needs significant training to do the job with the required precission.
If you'r pleased with the image position, you have to set the extraction size. This is done by clicking the
button "img. pos and size".
You can set the desired section with the left and right mouse button.
First click with the left mouse button in the image at the position, the left upper corner of the final image should be.
Two yellow lines show what has been selected.
Then click with the right mouse button in the image at the position, the right lower corner of the final image should be.
Now a yellow rectangle defines the extraction area.
If yuo are not satisfied with this rectangle, you can repeat the selection by clicking the middle mouse button. The previous
selection will be ignored.
The part of the image which will be caught is now shown in the "Define image extraction and image color correction"
dialog by a yellow rectangle. If the area is not correctly as you want it, you can fine adjust this area via the numeric up and down fields.
6 values can be modified via these fields:
As soon as the Start Recording button is pressed in the frame definition dialog
With the microscope you adjust the focusing and the magnification. With the focusing rails you correct the image
position
( up, down., left, right, eventually a rotation). If the result is acceptable, you can terminate the correction
process
and return to the definition dialog by pressing the button "stop image positioning" in the left lower corner of the window. As we deal with very tiny position changes, this task is not easy.
If you'r pleased with the image position, you have to set the extraction size. This is done by clicking the
button "img. pos and size".
You can set the desired section with the left and right mouse button.
The part of the image which will be caught is now shown in the "Define image extraction and image color correction"
dialog by a yellow rectangle. If the area is not correctly as you want it, you can fine adjust this area via the numeric up and down fields.
You have to perform this process very
accurately and it needs significant training to do the job with the required precission.
First click with the left mouse button in the image at the position, the left upper corner of the final image should be.
Two yellow lines show what has been selected.
Then click with the right mouse button in the image at the position, the right lower corner of the final image should be.
Now a yellow rectangle defines the extraction area.
If yuo are not satisfied with this rectangle, you can repeat the selection by clicking the middle mouse button. The previous
selection will be ignored.
6 values can be modified via these fields:
The yellow marked image area and the red extraction size text is updated with each change of a value. The window than looks
like this:
The correction values are applied via the fields below the picture box.
With the adjust color and adjust appearance sliders you can correct the colors, brighness, saturation and
the
contrast of the images. To visualize the changes you may click the adjust image button !
The selected values are carried foreward the the extraction process where they are applied to the grabbed images.
With the return button you can go back to the CineFrameCatcher main window.
If the image colors and borders are correctly set, you can start the image catching process by clicking the Start
recording
button. Make sure, that the yellow rectangle is visible when pressing this button.
to the table of content
Pressing the "start" button will start the grabbing process. From this point in time the images are shown in the progress dialog in their final form as they will be stored in the target folder for video clip generation.(see right picture)
The dialog is invoked from the Start Recording button in the definition dialog.
It shows the the target directory into which the scanned frames are stored.
The second line shows the name of the image actually processed.
The third line shows the name of the last image to be captured, and it indicates, that the frames are retrieved from a video device ("V")
There are 3 buttons.
There are 2 check marks.
In the main window a progress report is given, which shows, how many frames per minute are grabbed and an
estimate,
when the grabbing session might be completed.
In the message area also sometimes a message shows up, that notifies the observer, that the operating system
has performed a
garbage collection. This is to explain, why sometimes the frame grabbing seems to pause unintetionally.
Last change: June 21, 2020 WK