Scanning Negatives with Bellows

If you want to scan negatives at home there are few options. The most common these days is to use flatbed scanner with a negative attachment (which is basically a light inside the lid and some sort of plastic negative holder). Then there are dedicated film scanners that usually produce sharper results such as Canon CanoScan FS, Nikon CoolScan, Minolta multi Pro etc.., most of them being produced 20 years ago when the thing of scanning negatives was on everybody list which brings up the pesky issue of old drivers and new operating systems into full attention.

Both of these methods have one thing in common – it takes a very long time to scan. Each frame scanning and processing would be measured in minutes. Minute by minute and it can take easily few hours per roll of film. If you have many rolls to scan you will probably gave up pretty fast after you realize that you are going to be scanning for next few months.

Here I am describing a method that has been largely ignored, yet it is around 100 times faster and produces sharp results and resolution comparable to film scanners. Yes you can scan whole film in less than 2 minutes.


Enter the largely forgotten world of Macro Bellows

Having all on a single rails ensures that everything is is lined up, parallel and perfectly centered.

Macro bellows were commonly produced in the past for extreme close up photography by all major companies. (We are talking about 1970’s) Most of them would also offer some sort of film attachment for duplicating slide films and negatives.

Pictured on the left is a Vivitar bellows version with the copy atachement. Bellows are something like adjustable macro rings. By adding space between the lens and the camera we are able to focus much closer to the subject.

The best part is that you can find these dirt cheap (mostly because they need to be adapted to modern cameras and lenses before they can be actually used). In case of my Vivitar Bellows (which cost me whole $12 bucks with the film copy holder) that means adapting the camera and the lens to a T2 thread. This process may be actually easier with bellows made by a single maker for their system such as Nikon which would then use Nikon mount with Nikon lenses.

Adapting camera to the bellows is easy – there are many adapter rings that allows attaching this-or-that lens mount to any modern camera system. I am using Fuji X-T1 and of course there is FX to T2 adapter available. (In my case I 3d printed the adapter while waiting for the proper metal version to be shipped to me)

A little more challenging is to adapt a lens to the bellows. This requires an adapter from “whatever lens” to “whatever mount” your bellows has. If this was a Nikon that would be easy as you would use Nikon lens and that’s it. My Vivitar bellows has T2 mount on both sides which means I need to find the correct mount from whatever-lens to T2.

As for the lenses, for 35mm frame you want to use a prime lens that is about 50mm – 60mm, best if it is macro capable. There is also a trick which can be used with most other lenses – reversing them (yes you put the filter end towards the camera). This adds a bit of complexity in the adapter department and I won’t even go there. Fortunately there is a whole market for old used manual 50mm lenses.
I opted for pentax mount. Old manual pentax lenses are plentiful, inexpensive and great quality. (I paid for the one on the left about $10 in a thrift store)

Aperture ring on the manual lens is another thing that is common with old lenses and it is necessary because otherwise you have no other way to set aperture and you don’t want to use it wide open on fast lenses.

In my case the challenge is to mount PK lens to a T2 bellows. Such adapters were produced in the past so an old camera exchange store would be the best bet. In my case I made the adapter by myself (first I 3D printed one which was reasonable, then I actually disassembled some T2/Minolta ring and combined it with a mount from old pentax camera, some precise drilling and some very tiny screws and produced a super sturdy metal version of the adapter)

In my “production” version I ended up using a little beaten up Super Macro 50mm f4 Takumar lens that I found in the local ads for peanuts. It even included M42 to PK adapter so I could just swap the pentax lenses without making new adapter ring.
The advantage of using macro lens is that you can use the lens itself to fine focus to the film plate as it offers long focusing variability. With non-macro lens you would use the bellows itself to focus since the focusing of non-macro lens would make very little difference.

The last part is a light source behind the copy atachement which shouldn’t be a problem these days with plenty of LED photo lights. In my case the F4 of the lens was a good aperture that evens out any of old film curvature. I could set ISO 200 and shoot with about 1/30 to 1/60 shutter. The focus peaking on X-T1 makes precise focus very easy.

So what is the final word? The above contraption offers an incredible speed. “Scanning” entire roll of film is under 2 minutes – just basically how long it takes to advance the frame and press shutter button. As for quality it easily beats scanning on flat bed scanner – both for resolution and the sharpness. And I say it can easily match dedicated film scanners.

In the next part we will create a process in Photo Reactor to quickly turn the negative images into properly adjusted and toned positive images.

Frequency separation with Photo-Reactor

Level: Intermediate

You may have already heard about Frequency Separation technique in photo editing, since it became popular in the past few years.

In short you separate your image into two parts: High Frequency that contains the texture and fine details and the Low Frequency that contain colors and tones and rough details.

This way you can focus your editing on just the texture or the tone and not being concerned with both at the same time.
Sounds pretty cool. So how to do it in Photo-Reactor?

The low frequency is generally just a blurred image with Gaussian blur. That part is easy.

But how do we get the High frequency component?
We don’t need to re-invent the wheel. The High frequency is the rest what was removed by blurring! Or to formulate it another way: it is the difference between the original and the blurred (low frequency) image and this is pretty much how Photoshop (or Photo-Reactor) High pass filter works.

We could do that with the reactor objects alone, but to keep things short and fast, we will use just a single reactor C++ block and type a short code that will do that part for us.

Remember the reactor c++ script needs also the first comment lines (the //## ) that will setup the number of inputs and variables for the block. Once you copy the code and press compile, the block will have two inputs and a slider.


//A sample Reactor Script - create High Pass
//##NAME:Create High Pass form original and blurred image
//##DESCRIPTION:first node is the original image, second node is blurred

void main()
	// get the image from input socket
	fimage img1(INPUT1);
	fimage img2(INPUT2);

  	int width = img1.width;
	int height = img1.height;

   float r,g,b;

   float multip = VAR1/100.0;

   for (int y=0; y<height; y++)
      for (int x=0; x<width; x++)

         // one way to get color from pixel
         fpixel color1 = img1.Pixel(x,y);
         fpixel color2 = img2.Pixel(x,y);

         r = color1.r-color2.r;
         g = color1.g-color2.g;
			b = color1.b-color2.b;

			r = r*multip+0.5;
			g = g*multip+0.5;
			b = b*multip+0.5;
         img1.SetRGB(x, y, r, g, b);

	// send the image to output

If you do this right, the output will show High pass image and when you change the Blur radius, it will work exactly like the radius in High Pass filter in Photoshop.

We added one variable “Multiplier” to the object. By default it should be in the middle (50) and that would produce the High Frequency as the exact counterpart to the Blur (Low Frequency). We can use this slider later for experimenting to add or remove the High Frequency.

How to tie all this together?
The output from the Blur block is the Low Frequency, the output of the C++ block is the High Frequency. So how do we merge them together back. Luckily there is Linear Light blend mode, that will do all that for us.

In this configuration as on the picture the Linear Light blend object need to have Swap layers to apply it correctly, or you can just wire the Blur to A and C++ to B.

If everything is right, then the output should be now the same as input. If it isn’t check if you have Swap Layers set on the Linear Light.

So after all this we produced exactly nothing as the output looks the same as the input. But that is the proof that it works we needed! We separated the image into two frequencies and then merge them together.

The Blur Radius determines the Split point between the frequencies and we can drop a Log Knob on the Blur object to extract that value to the workplace for easy manipulation.
Having a single split point is also the reason why we didn’t just use the build-in High Pass filter that exist already in Photo-Reactor. We really want the High frequency leg to be the exact counterpart of the low frequency. Regardless where we put the split point (Blur radius) the result image will be still same as the input even though both low and high pictures will change dramatically.


So it is now entirely up to you how to use it. I dropped few pins so I can easily connect objects in the path between them.

For example I can add Median or Noise reduction to the High Pass path and Saturation to the Low pass… but it can be as complex or as experimental as you want.

There are many uses, for example we can soften skin on portraits without changing the tone. Or we can do crazy things. But I leave it for you now.

If you want to download a ready made flow, get this image (right click, Save Link As) and then just drag it to Photo Reactor from Windows explorer.
When it asks you if you want to load it as image or Load as flow, say flow. Then it will ask you to save the currently opened project before it opens the project from embedded image. You can just press Cancel at that point if you didn’t work at anything else.

Tools used in this article

Photo Reactor

Photo-Reactor is a new nodal image editor for windows with unlimited possibilities.

Photo-Reactor features used in this article:

  • Self-Documenting Flow
  • Gaussian Blur object
  • Script Object with c++ language
  • Blend Object
  • Knob Object
  • Pin Objects