KMZ Zorki 4 (Soviet Rangefinder)

The Leica rangefinder

Rangefinder type cameras predate modern single lens reflex cameras. People still use them. It’s just a different way of shooting. Since they’re no longer a mainstream type camera most manufacturers have stopped making them a long time ago. Except Leica, Leica still makes digital and film rangefinders and as you might guess, they come at significant cost. Even old Leica film rangefinders easily cost upwards of € 1000. While Leica certainly wasn’t the only brand to manufacture rangefinders throughout photographic history, it was (and still is) certainly the most iconic rangefinder brand.

The Zorki rangefinder

Now the Soviets essentially tried to copy Leica’s cameras, the result of which, the Zorki series of cameras, was produced at KMZ. Many different versions exist, having produced nearly 2 million cameras across more than 15 years, the Zorki-4 was without a doubt it’s most popular incarnation. Many consider the Zorki-4 to be the one where the Soviets got it (mostly) right.

That said, the Zorki-4 vaguely looks like a Leica M with it’s single coupled viewfinder/rangefinder window. In most other ways it’s more like a pre-M Leica, with it’s 39mm LTM lens screw mount. Earlier Zorki-4’s have a body finished with vulcanite which is though as nails, but if damaged is very difficult to fix/replace. Later Zorki-4’s have a body finished with relatively cheap leatherette, which is much more easily damaged, and is commonly starting to peel off, but should be relatively easy to make better than new. Most Zorki’s come with either a Jupiter-8 50mm f/2.0 lens (being a Zeiss Sonnar inspired design), or an Industar-50 50mm f/3.5 (being a Zeiss Tessar inspired design). I’d highly recommend getting a Zorki-4 with a Jupiter-8 if you can find one.

Buying a Zorki rangefinder with a Jupiter lens

If you’re looking to buy a Zorki there are a few things to be aware of. Zorki’s were produced during the fifties, the sixties and the seventies in Soviet Russia often favoring quantity over quality presumably to be able to meet quota’s. The same is likely true for most Soviet optics as well. So they are both old and may not have met the highest quality standards to begin with. So when buying a Zorki you need to keep in mind it might need repairs and CLA (clean, lube, adjust). My particular Zorki had a dim viewfinder because of dirt both inside and out, the shutterspeed dial was completely stuck at 1/60th of a second and the film takeup spool was missing. I sent my Zorki-4 and Jupiter-8 to Oleg Khalyavin for repairs, shutter curtain replacement and CLA. Oleg was also able to provide me with a replacement film takeup spool or two as well. All in all having work done on your Zorki will easily set you back about € 100 including significant shipping expenses. Keep this in mind before buying. And even if you get your Zorki in a usable state, you’ll probably have to have it serviced at some point. You may very well want to consider having it serviced rather sooner than later, allowing yourself the benefit of enjoying a newly serviced camera.

Complementary accessories

Zorki’s usually come without a lens hood, and the Jupiter-8’s glass elements are said to be only single coasted, so a lens hood isn’t exactly a luxury. A suitable aftermarket lens hood isn’t hard to find though.

While my Zorki did come with it’s original clumsy (and in my case stinky) leather carrying case, it doesn’t come with a regular camera strap. Matin’s Deneb-12LN leather strap can be an affordable but stylish companion to the Zorki. The strap is relatively short, but it’s long enough to wear around your neck or arm. It’s also fairly stiff when it’s still brand new, but it will loosen up after using it for a few days. The strap seems to show signs of wear fairly quickly though.

To some it might seem asif the Zorki has a hot shoe, but it doesn’t, it’s actually a cold shoe, merely intended as an accessory mount and since it’s all metal even with a flash connected via PC Sync it’s likely to be permanently shorted. To mount a regular hot shoe flash you will need a hot shoe adapter both for isolation and PC Sync connectivity.

Choosing a film stock

So now you have a nice Zorki-4, waiting for film to be loaded into it. As of this writing (2015) there is a smörgåsbord of film available. I like shooting black & white, and I often shoot Ilford XP2 Super 400. Ilford’s XP2 is the only B&W film left that’s meant to be processed along with color print film in regular C41 chemicals (so it can be processed by a one-hour-photo service, if you’re lucky enough to still have one of those around). Like most color print film, XP2 has a big exposure latitude, remaining usable between ISO 50 — 800, which isn’t a luxury since the Zorki-4 is not equipped with a built-in lightmeter. While Ilford recommends shooting it at ISO 400, I’d suggest shooting it as if it’s ISO 200 film, giving you two stops of both underexposure and overexposure leeway.

BiertjeWith regard to color print film, I’ve only shot Kodak Gold 200 color print film thus far with pretty decent results. Kodak New Portra 400 quickly comes to mind as another good option. An inexpensive alternative could possibly be Fuji Superia X-TRA 400, which can be found very cheaply as most store-brand 400 speed color print film.

Shooting with a Zorki rangefinder

Once you have a Zorki, there are still some caveats you need to be aware of… Most importantly, don’t change shutter speeds while the shutter isn’t cocked (cocking the shutter is done by advancing the film), not heeding this warning may damage the cameras internal mechanisms. Other notable issues of lesser importance are minding the viewfinder’s parallax error (particularly when shooting at short distances) and making sure you load the film straight, I’ve managed to load film at a slight angle a couple of times already.

As I’ve mentioned, the Zorki-4 does not come with a built-in lightmeter, which means the camera won’t be helping you getting the exposure right, you are on your own. You could use a pricy dedicated light meter (or a less pricy smartphone app, which may or may not work well on your particular phone), either of which are fairly cumbersome. Considering XP2’s wide exposure latitude means an educated guesswork approach becomes feasible. There’s a rule of thumb system called Sunny 16 for making educated guesstimates of exposure for outdoors environments. Sunny 16 states that if you set your shutter speed to the closest reciprocal of your film speed, bright sunny daylight requires an aperture of f/16 to get a decent exposure. Other weather conditions require opening up the aperture according to this table:



If you have doubts when classifying shooting conditions, you may want to err on the side of overexposure as color print film tends to prefer overexposure over underexposure. If you’re shooting slide film you should probably avoid using Sunny 16 altogether, as slide film can be very unforgiving if improperly exposed. Additionally, you can manually read a film canisters DX CAS code to see what a films minimum exposure tolerance is.

Quick example: When shooting XP2 on an overcast day, assuming an alternate base ISO of 200 (as suggested earlier), the shutter speed should be set at 1/250th of a second and our aperture should be set at f/8, giving a fairly large field of depth. Now if we want to reduce our field of depth we can trade +2 aperture stops for -2 stops of shutterspeed, where we end up shooting at 1/1000th of a second at f/4.

Having film processed

After shooting a roll of XP2 (or any roll of color print film) you need to take it to a local photo shop, chemist or supermarket to have a it processed, scanned and printed. Usually you’ll be able to have your film processed in C41 chemicals, scanned to CD and get a set of small prints for about € 15 or so. Keep in mind that most shops will cut your filmroll into strips of 4, 5 or 6 negatives, if left to their own devices, depending on the type of protective sleeves they use. Some shops might not offer scanning services without ordering prints, since scanning may be considered a byproduct of the printmaking process. Resulting JPEG scans are usually about 2 megapixel (1800×1200), or sometimes slightly less (1536×1024). A particular note when using XP2, since it’s processed as if it’s color print film means it’s usually scanned as if it’s color print film, where the resulting should-be-monochrome scans (and prints for that matter) can often have a slight color cast. This color cast varies, my particular local lab usually does a fairly decent job, where the scans have a subtle color cast, which isn’t too unpleasant. But I’ve heard about nasty heavier color casts as well. Regardless you need to keep in mind that you might need to convert the scans to proper monochrome manually, which can be easily done with any random photo editing software in a heartbeat. Same goes for rotating the images, aside from the usual 90 degree turns occasionally I get my images scanned upside down, where they need either 180 degree or 270 degree turns, you’ll likely need to do that yourself as well.

Post-processing the scans

Generally speaking I personally like preprocessing my scanned images using some scripted commandline tools before importing them into an image management program like for example Shotwell.

First I remove all useless data from the source JPEG, and in particular for black and white film, like XP2, remove the JPEGs chroma channels, to losslessly remove any color cast (avoiding generational loss):

$ jpegtran -copy none -grayscale -optimize -perfect ORIGINAL.JPG > OUTPUT.JPG

Using the clean image we previously created as a base, we can then add basic EXIF metadata:

$ exiv2 \
   -M"set Exif.Image.Artist John Doe" \
   -M"set Exif.Image.Make KMZ" \
   -M"set Exif.Image.Model Zorki-4" \
   -M"set Exif.Image.ImageNumber \
      $(echo ORIGINAL.JPG | tr -cd '0-9' | sed 's#^0*##g')" \
   -M"set Exif.Image.Orientation 0" \
   -M"set Exif.Image.XResolution 300/1" \
   -M"set Exif.Image.YResolution 300/1" \
   -M"set Exif.Image.ResolutionUnit 2" \
   -M"set Exif.Photo.DateTimeDigitized \
      $(stat --format="%y" ORIGINAL.JPG | awk -F '.' '{print $1}' | tr '-' ':')" \
   -M"set Exif.Photo.UserComment Ilford XP2 Super" \
   -M"set Exif.Photo.ExposureProgram 1" \
   -M"set Exif.Photo.ISOSpeedRatings 400" \
   -M"set Exif.Photo.FocalLength 50/1" \
   -M"set Exif.Image.MaxApertureValue 20/10" \
   -M"set Exif.Photo.LensMake KMZ" \
   -M"set Exif.Photo.LensModel Jupiter-8" \
   -M"set Exif.Photo.FileSource 1" \
   -M"set Exif.Photo.ColorSpace 1" \

As I previously mentioned I tend to get my scans back upside down, which is why I’m usually setting the Orientation tag to 3 (180 degree turn). Other useful values are 0 (do nothing), 6 (rotate 90 degrees clockwise) and 9 (rotate 270 degrees clockwise).

Keeping track

When you’re going to shoot a lot of film it can become a bit of a challenge keeping track of the various rolls of film you may have at an arbitrary point in your workflow. FilmTrackr has you covered.


You can find a scanned manual for the Zorki-4 rangefinder camera on Mike Butkus’ website.


If you want to read more about film photography you may want to consider adding Film Is Not Dead and Hot Shots to your bookshelf. You may also want to browse through which seems to be a pretty good resource as well. And for your viewing pleasure, the [FRAMED] Film Show on YouTube.

Simulating Analog Black & White

There are millions of black & white photo plugins available. Some simple, some complex. When I recently got back a batch of real developed black & white film, I tried to investigate my scans to see how to emulate the effect (and possibly how to automate it).

The simplest approach I’ve been able to come up with involves blurring and decreasing contrast (with output levels). It can be automated with ImageMagick like so:

# convert -gaussian-blur 1x1 -filter triangle -resize 3000x2000 -level \!15%,\!95%,1.0 -colorspace gray -gaussian-blur 5x1 input.jpg output.jpg

Please note that doesn’t involve noise simulation yet, which seems to be hard to do with ImageMagick (tips are welcome). Please do note that I’m resampling to 6MPixels for convenience, you can use any resolution assuming you roughly scale along the 5 pixel Gaussian blur.


Photo Printing Preprocessing

Most linux applications don’t support preprocessing images for print output, and there are a few things that need to be done to get good quality prints. In this article I’ll be focussing on Darktable. So make sure you sharpen your image in Darktable to the point where the pixels are crisp when you zoom to 1:1, don’t oversharpen at this point. Then export your photo to a 16 bit TIFF in Adobe RGB color space if you have a printer profile (if not an 8 bit TIFF in sRGB color space will be fine).

Then we need to compensate for possible bleeding of the inks on paper, so a tad of oversharpening is in order, ImageMagick to the rescue. First we resample the image to 300 DPI, sharpen the image using an unsharp mask and add a small black border followed by adding a larger white border:

# convert -filter cubic -density 300 -resize 2049x3075 -unsharp 4x2+0.8+0.1 \
        -bordercolor black -border 18x18 -bordercolor white -border 198x198 \
                         PMJ_20101003_1234.tiff TEMP_PMJ_20101003_1234.tiff
Next we convert our 16 bit AdobeRGB TIFF to an 8 bit TIFF in the native printer output space using a relative colorimetric rendering intent (which works best for me):
# tifficc -o /home/pmjdebruijn/.color/icc/hema_matt_coated_photo_paper.icc \
    -t 1 -c 2 -q -b TEMP_PMJ_20101003_1234.tiff PRINT_PMJ_20101003_1234.tiff

Do note, that most (if not all) printer output color space are lookup table based, which means that if precalculated perceptual tables are present, they have been mapping against a working color space when the profile was generated, most often sRGB or AdobeRGB, in any case be careful when using the perceptual rendering intent that the input file’s working color space is the same as the perceptual tables have been precalculated for.

Homebrew ColorChecker

Recently I’ve become the proud owner of a spectrophotometer, besides profiling printers, there lots of other cool things you can do with it… For example making your own homebrew ColorChecker camera profiling target. While my replica isn’t accurate enough as a drop-in replacement, it does work very well, when each homebrew ColorChecker is measured separately to create per-chart reference data. Even with the per-chart reference data the homebrew ColorChecker isn’t as good as the original, because the original had it’s pigments selected to reduce metamerism, which the homebrew version is potentially vulnerable to.

The above picture is a first version of my homebrew ColorChecker. I made it by first looking for a good neutral matte white paper, which became Tetenal Photo Archival Matte, for which I then made a printer profile using ArgyllCMS. Generating a printer profile (actually it’s profile of the paper+ink+printer+driver configuration combo) means I can print images with a reasonable level of confidence the print will be color accurate. Then I made a custom sRGB version of the ColorChecker target (look for inspiration here). Then I printed the custom sRGB image of the ColorChecker with the printer profile applied. Then I measured the target using my spectrophotometer, so I know what colors the patches actually are. I scaled the print so that the target could fit inside the manual area of a traditional 14mm DVD case. The DVD case has a dual purpose here, first it keeps the target straight/upright and when closed it protects the target from dust/moist. To stick the target to the inside of the case I used 3M Photo Mount, which is Ph-neutral to prevent the glue from deteriorating the colors.

Initial tests are very encouraging, camera profiles generated from it work quite well, especially when shot using a decent hot-shoe flash.

Using Despeckle As Denoise

We all know quite well that in general phone camera’s suck. The cheaper phone’s usually have completely unusable camera functionality and the more expensive ones sometimes have bearable camera functionality. In practically all cases, they have significant noise. Effectively getting rid of that noise makes a phone camera that more useful. While experimenting a bit with GIMP, I noticed just about any denoising method destroyed detail and did not effectively deal with the noise in my images. Until I tried something different… Despeckle:

Open up your noisy phone camera image in GIMP, then go to Filters, Enhance, Despeckle… And obviously the Despeckle dialog turns up… Enable the adaptive median (but leave recursion off). Set the radius to 1, and leave the black and white levels at their defaults (respectively 7 & 248), and behold the results:

Losing GIMP

I read Fedora 12 has already stopped shipping GIMP in their default installation, and Ubuntu is about the follow suit. Considering I’m a hobby photographer you might think I’d be opposed to this move, but I’m not. The rationale for this move is very valid indeed. F-Spot has become a quite capable piece of software, these days it does just about everything most users want: crop, adjust saturation, adjust contrast and remove red-eye. For most “normal” people GIMP is quite scary, luckily shows like Meet The GIMP ease this problem considerably.

Having said that, I am still slightly sad about this, GIMP is one of those iconic open source applications that have been around for more than a decade. Luckily we’re not saying farewell, just until we visit next time.

GNOME Color Manager for Ubuntu Karmic

Richard Hughes has recently been rocking my world in a very big way… Color management on Linux/GNOME has been too hard for much too long and GNOME Color Manager is about to fix that. The hardcore groundwork of reading colorimeters and color calculus had already been taken care of by Graeme Gill with ArgyllCMS. GNOME Color Manager built on that by providing users with a very easy going GNOME user interface, while in the background driving ArgyllCMS to do all the hard work.

Another “problem” of using the commandline utilities of ArgyllCMS was, that display profiles consist of two parts. A VideoLUT which has to be applied by X11 or loaded into the video card, and a color matrix with gamma shaper which has to be applied by the color management aware applications like GIMP and UFRaw.

In the past, I’ve always built simpeler (and less accurate) profiles, to prevent me from having to load the VideoLUT every time I logged in. GNOME Color Manager solves this by introducing a service which does this fully automatically. Making it easy to use more accurate profiles.

Last but not least, GNOME Color manager also adheres to the XICC specification, and makes sure color management aware applications like GIMP and UFRaw can automatically see for which profile the VideoLUT had been applied, and thus dictating which profile to load in the application.

As could be expected, I’ve been building Ubuntu (Karmic) packages from regular git checkouts, which are available at my PPA.

New Canon EOS 400D color profiles (again)

It’s been almost a year since I last updated my Canon EOS 400D color profiles (for UFRaw). I’ve learned a bit since then, and made a new set of profiles. The set includes an accurate daylight profile, and five Canon picture style emulation profiles, which should get you the general look and feel of camera generated JPEGs out of UFRaw while using these profiles.

You can download the profiles here, or get them nicely packaged for Ubuntu Karmic from my PPA.

UFRaw 0.16 and Lensfun 0.2.4 for Ubuntu

A few days back both UFRaw 0.16 and Lensfun 0.2.4 were released. I have made Ubuntu packages available for both in my PPA, built for Ubuntu Jaunty and Ubuntu Karmic. These milestones also mean I’ll stop tracking development releases for a while now. So no more svn/cvs releases until interesting things start popping up again. Since both these builds are release grade quality (knock on wood), I’ll be dropping support for my Jaunty repository and builds. Karmic will be released very soon.

UFRaw CVS packages for Ubuntu Karmic

Since I’ve begun fiddling with Karmic on my laptop, I’ve also been building my UFRaw CVS packages for Karmic as well. Since the latest checkout UFRaw should support the new Canon EOS 7D and Sony Alpha 850 camera’s. The packages are available at my PPA as usual. I’ve updated my UFRaw FAQ as well, with some more information on demosaicing artifacts, and JPEG quality.

At the moment lensfun no longer seems broken in Ubuntu Karmic, so you can upgrade to the latest version of lensfun again.