I am currently looking for solutions to take high resolution photos of objects via a dedicated software. (The software will be developed by myself.) Therefore I am looking for ideas for cameras, where:

  • The camera has a full API (settings, focus, exposure, etc...) available in C/C++. (Similar to the Canon EOS-SDK)
  • The camera supports an optical zoom via the API. (The objects vary between 3m and 0.5m in size, I would like to zoom in for the smaller objects to capture them with max resolution)

As far as I know the Canon cameras (EOS) do not support optical zoom via their API, all I would be able to do is to crop the image in the SW hence simulating a digital zoom.

Do you have any suggestions, which products I should look at closely? (I am not much of a photography expert)

Thanks in advance,


| improve this question | | | | |
  • What resolution you need? What kind of depth of field? What lightning conditions? Is there a flash? Are the objects all centered in the same location? Because if not, you need to turn the camera with the C API as well. Any possibility to use two fixed focal length cameras with different focal lengths? Then optical zoom would be just selecting the camera to use from the software. – juhist Mar 19 '19 at 11:24
  • More: autofocus or manual focus? How quick do you have to take the picture, i.e. is 1 second autofocus delay too much? That will decide whether slow contrast detect autofocus is enough or if you need phase detect autofocus. Anyway, if you have a flash or good lighting, fixed focus could be an option with small aperture (large F-number). – juhist Mar 19 '19 at 11:26
  • @juhist: The resolution shall be at least 4000x3000 (or similar), or 12MP+, but desired is 20MP+. All objects will be centered on a table, therefore there is no need for rotating/moving the camera. Just zooming, since size of the objects vary very strong. My backup solution is to use 2 or more cameras with different focal lengths, but before buying 2 or more cameras I thought I post my question here. :) – tebe Mar 19 '19 at 11:46
  • @juhist: Autofocus would be good, since I would like to automate the process as much as possible. The operator just swaps the object to the next one and triggers the software to do its thing. A fixed focus is an option as well, but since there is at least a few seconds gap between the objects I would not hesitate to go for an autofocus camera. As of the flash I cannot decide: The objects will be indoors, with a few windows (not much light) but with a dozen of "tube lights". – tebe Mar 19 '19 at 11:52
  • If you can afford to have long exposure time (objects not moving), even a small sensor camera can with long exposures avoid the need to have a flash. One second exposure can do miracles in indoor conditions. At these specs, I'd be looking for one or two compact cameras (depending on if you can control the zoom), if you find a way to control these with software. EOS DSLR is overkill, way too expensive, and the zooming happens by hand with EOS DSLRs. You apparently don't need the good autofocus performance of EOS DSLRs. – juhist Mar 19 '19 at 11:56

Edit: I think I found your camera, PowerShot SX70 HS. It apparently allows remote zoom control and is equipped with a whopping 65x zoom.

The best camera for your situation, because you don't absolutely need a large sensor and can replace a large sensor with long exposure, is a compact camera. Unfortunately, Canon has discontinued programmatic API control of its PowerShot cameras, as you have noticed. Some old PowerShot and IXUS cameras can be controlled remotely: http://www.gphoto.org/doc/remote/ ...but you need to find a used camera and its Mpix rating will be poor. So, if you cannot find any recent remote-controllable compact camera, your only option is a DSLR. Compact cameras have the advantage that the zoom happens with an electric motor, meaning it's possible in some cases to control the zoom programmatically.

EOS DSLRs offer one advantage: bigger sensor (which you don't need) and one big honking disadvantage: the zoom is not controlled by an electric motor, so zooming can only happen manually. So, if you decide to go with EOS DSLR, you need in practice at least two, perhaps even three (and slight amount of digital cropping).

The Canon camera API supports EOS 4000D which is usually shipped with a 18-55mm non-image-stabilized zoom lens. You could purchase two, for $300-$350 a piece, and set their zooms to different values. 4000D is 18 Mpix, but if you need to crop the images, it will become smaller. Do note the optical quality of 4000D and the shipped lens is quite good, and noise is low, so the 18 Mpix is 18 true megapixels, not some useless advertising value.

If you want to go a bit more expensive, EOS 2000D supports 24 megapixels and is usually shipped with an image-stabilized lens. Are you willing to pay for the extra 6 megapixels, only you know. The image stabilization in your case is an unneeded feature.

2000D and 4000D can also be placed easily on a tripod using a standard screw mount.

Your zoom need is 6x. If you set one lens to 2.45x the other, in worst case you need 2.45x digital crop in both directions. 18 Mpix thus would in worst case be 3 Mpix (18 / 2.45^2 = approximately 3). But the images at 3 Mpix would be extremely sharp, so perhaps that could be enough for you? 24 Mpix would in worst case be 4 Mpix.

If you purchase three DSLRs, and set:

  • One to 18mm
  • One to 31.5mm
  • One to 55mm

You in worst case need 1.96x crop, meaning 18 Mpix turns to 4.7 Mpix and 24 Mpix turns to 6.2 Mpix. If you can move the 55mm camera a bit closer, you could set:

  • One to 18mm
  • One to 32.7mm
  • One to 55mm and move a bit closer

...you in worst case need 1.82x crop, meaning 18 Mpix turns to 5.4 Mpix and 24 Mpix turns to 7.2 Mpix.

My advice? If you plan to use the cameras for other purposes as well in the future and not just for this project, buy one 2000D with an image-stabilized lens and learn how much/little megapixels mean. Then you can decide which one/two other cameras to purchase, 2000D or 4000D. Perhaps even 3 Mpix would be enough for you if the images are really sharp?

| improve this answer | | | | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.