Interesting article from Google research labs

This is essentially the same as some of the image averaging experiments done by @patdavid, myself, and others here. In fact, I did something similar with my Nexus 5x on my first post here. What seems most interesting to me is that it may mean the computational photography team at Google is working on a pipeline to do this “in camera”. Probably won’t be an open source app, but there could be some useful ideas that come from it. I can imagine doing this all on the phone with the Termux shell and graphicsmagick …

2 Likes

It is unfortunate that you can not pass an EV to the termux camera API call.

It is unfortunate that you can pass an EV to the termux camera API call.

Do you mean can’t?

Wow! Imagine this algorithm used on a proper camera. Can’t wait that this goes live. It will make my gear ALOT lighter :slight_smile: :

Definitely interesting. I want to play with this again to see whether I can get decent low light images out of a DJI Mavic (with a tiny 1/2.3" sensor). :slight_smile:

@Trickortreat this is essentially just stacking and you can totally to it with your current gear already. But as mentioned in the article it’s currently quite a bit of work. I think better tooling will be required to make this more mainstream.

2 Likes

Yep, i know, it can be done with Hugin, but with lot of pixel peeping and masking and lot of time invested in only one image… i like automation :slight_smile:

I have been getting similar results with aligning and averaging photos from a LG-V10 smartphone so yes it is possible on a tiny sensor :slight_smile: (with a bit of darktable preprocessing to reduce noise further)

Indeed I do mean “can not” and I’ve updated my post.

Actually, it can be automated to some extent using align-image-stack and then imagemagick to compute the mean. My “superres” script in the scripts GitHub repo for the site basically does this, but with the added step of increasing the pixel count for higher resolution as well.

2 Likes

Yes, it would be nice if you could do EV steps with termux-camera-photo, or at least set the shutter speed. However, Open Camera does have an intervelometer setting that cab automate that part. What I don’t know is if the phone has enough RAM and processing power to compute the mean of the image stack. At least from within a Termux session where memory might not be most efficiently allocated…

Any reads somewhere how a mere mortal could do it… some step by step? Tutorial perhaps? :slight_smile:

1 Like

I guess I should have provided a link in my earlier post. Sorry!

If memory is an issue, it is possible to divide and conquer by tiling the image and then interpolating afterward. With intermediary files, you won’t have to place the entire image into the buffer. Also, ImageMagick has a way to load images into the buffer on demand.

Hmm… Interesting ideas! I will have to play around with this and see if I can get something to work. I don’t think there is a Termux version of align-image-stack, so probably would have to use a tripod to take the photos (not a bad idea anyway!), but if I can efficiently get the average of the image stack, then it’s a go!

Yes, it would be nice if you could do EV steps with termux-camera-photo,

I’ve done a little research:

  1. termux-camera-photo is a shell script:
    https://github.com/termux/termux-api-package/blob/master/scripts/termux-camera-photo
  2. The script calls the termux-api
    GitHub - termux/termux-api: Termux add-on app which exposes device functionality as API to command line programs.
    termux-api/app/src/main/java/com/termux/api/TermuxApiReceiver.java at master · termux/termux-api · GitHub
  3. And then calls this class:
    https://github.com/termux/termux-api/blob/master/app/src/main/java/com/termux/api/PhotoAPI.java
  4. This class uses the camera2 API from google:
    android.hardware.camera2  |  Android Developers
  5. The camerra2 API is able to set the exposure:
    CameraCharacteristics  |  Android Developers

Now we “just” need someone to glue this all together.

2 Likes

If only I knew Java!!

Good find, though! I’m glad to know that it might actually be possible to do this in one Termux “app”…

I’ve opened a Ticket. Please add a comment, if you need more settings:

2 Likes

I haven’t tested this app, but it looks interesting:

@Tobias I had not seen that. It seems to be a dead project, sadly (no development in over 2 years!). I think most (probably all) of this functionality is now in Open Camera, however. :smile: