11 votes
Accepted

Detect in-focus regions of an image

it is quite easy to measure the local max frequency in an image (at least as a low resolution mask, with some regularization). Several papers of the MIT graphics group have been around detecting and ...
Fabrice NEYRET's user avatar
10 votes
Accepted

What is bilateral upsampling?

It seems like you're asking two things. I can't really speak technically about JBU, but I can give an overview of the necessary concepts and bilateral filtering generally. You'll probably need to ...
geometrian's user avatar
  • 1,950
10 votes
Accepted

Seamless Textures

For these types of algorithms, you usually have to rely on multiple forms of texture synthesis. That doesn't mean you have to generate the whole texture from scratch. For example, you could regenerate ...
aces's user avatar
  • 1,353
9 votes
Accepted

What's a proper way to clamp dither noise?

TL;DR: 2*1LSB triangular-pdf dithering breaks in edgecases at 0 and 1 due to clamping. A solution is to lerp to a 1bit uniform dither in those edgecases. I am adding a second answer, seeing as this ...
Mikkel Gjoel's user avatar
7 votes

Algorithms to Remove High Frequency Noise from Path Tracing

There are, and I am looking forward to seeing the specifics of other answers, but one way to deal with this is to not have the noise (or as much noise) in the source data to begin with. The noise is ...
Alan Wolfe's user avatar
  • 7,751
7 votes

Relationship between spatial frequency of an image and Aliasing

Like in any other kind of signal processing, the relationship is Nyquist's theorem. An image is a discrete sequence of samples of a continuous signal. If the original signal has frequency components ...
Dan Hulme's user avatar
  • 6,700
6 votes
Accepted

How to perform an image normalization after for example adding a constant to it?

I believe that Zrep is the output range. In 8-bit it would be 255. Let's say fmin was 25, ...
user1118321's user avatar
  • 3,401
6 votes
Accepted

reducing image size increases file size?

JPEG is a lossy format and depends on both the 2d frequency components of the image and the user specified quality level. It is possible that down-scaling an image can increase the higher frequency ...
PaulHK's user avatar
  • 2,312
6 votes

Was Evans & Sutherland CT5 really created in 1981?

The CT5 was designed before 1981. I started working at E&S in May 1981. The CT5 was fully designed by then and 3 had been built. All 3 were still at E&S and hadn't shipped yet when I started. ...
John's user avatar
  • 61
6 votes

Making low discrepancy sequence noise textures, not LDS sample positions

In theory, it is possible to stuff every sample distribution into a texture to "pre-bake" it for fast access. The question is whether any of the results might be useful. For blue noise, this makes a ...
DrivenByNostalgia's user avatar
6 votes
Accepted

Why does an affine transform work only on three of the corners?

An affine transformation doesn't have enough freedom to do what you want. Affine transforms can be constructed to map any triangle to any other triangle, but they can't map any quadrilateral to any ...
Nathan Reed's user avatar
  • 24.7k
6 votes

Why not use hash function image instead of jpeg?

Unlike a compression function, which can be reversed to recover (an approximation to) the original data, a hash function is irreversible. You can hash your image, and the hash is a lot smaller than ...
Dan Hulme's user avatar
  • 6,700
5 votes
Accepted

Image rescaling algorithm

Explanation With a non-linear scale, you apply different weights for each pixel (or whatever unit you are using). You can use Euclidean distance towards the closest pixels in both directions to ...
aces's user avatar
  • 1,353
5 votes

Explanation of a the transparency of an .EXR file

In an EXR, the convention is to store associated alpha, also known as premultiplied. The latter term however doesn't do justice to the nuances of the alpha format as compared to its evil distant ...
troy_s's user avatar
  • 318
5 votes

Improved Laplacian smoothing of noisy surface meshes

This is a quite common property of smoothing in 3D. When you have some data and you smooth it out you get some kind of average of the local variation. And this works fine, and stably, in one ...
joojaa's user avatar
  • 8,397
5 votes

Unwinding an image on a spiral to make it long and flat

A quickly formulated method, read first one that popped in my brain (not best), could be. Find the closest points on a parametric spiral for each sample (read A Pixel Is Not A Little Square3). Then ...
joojaa's user avatar
  • 8,397
5 votes
Accepted

Converting raster shape/blob into displacement map

One way I can think of is to make a "signed distance transform" of the image where there is information for each pixel about how far the pixel is to the closest surface of the shape. Since it's ...
Alan Wolfe's user avatar
  • 7,751
5 votes
Accepted

Instagram's fade effect

The effect in the photo is very close to a simple scale-bias per pixel. After a bit of tweaking, I found that applying the transformation: $x' = 0.77x + 38$ to the raw pixel values (as bytes) gives ...
Nathan Reed's user avatar
  • 24.7k
5 votes
Accepted

What kind of image processing was used in the Facebook "Celebrate Pride" filter?

The top Zuckerberg image looks like you first convert your background Zuckerberg image to grayscale. Then you can add a second layer with the rainbow texture but use the 'Screen' blending mode, this ...
PaulHK's user avatar
  • 2,312
5 votes
Accepted

Calculate the average color of an image

Averaging RGB should be correct assuming you do it in linear RGB. If your images are in sRGB, you can remove the gamma correction by doing something like the following for each of the R, G, and B ...
user1118321's user avatar
  • 3,401
4 votes

Image rotation algorithm

It speed does not matter, I suggest to use a truncated sinc or a Lanczos isotropic kernel: to compute a target pixel, you back-rotate the filter and convolve it with the image. Since it is isotropic, ...
Fabrice NEYRET's user avatar
4 votes

How to detect a screen in a photo

The first things I would try is to see if smartphone pixels are visible (if the photo is high res) or if strange aliasing occurs (your example image shows both). Another classical test (but not ...
Fabrice NEYRET's user avatar
4 votes
Accepted

How linear interpolation works between mipmaps?

It's called trilinear interpolation. You first do a bilinear interpolation of the higher-res texture, then do a bilinear interpolation on the lower-res texture, then interpolate between the 2 results. ...
user1118321's user avatar
  • 3,401
4 votes
Accepted

Pixel dispersion (dissolving) algorithms

A very simple low memory approach If you really want to use as little memory as possible, it can be done with not much more memory than that required to store a single image (the first frame) ...
trichoplax is on Codidact now's user avatar
4 votes

Algorithms to Remove High Frequency Noise from Path Tracing

One technique you could use is break the image into blocks and measure each blocks variance - this way you can apply more samples to blocks with higher variance. The variance can be estimated by ...
PaulHK's user avatar
  • 2,312
4 votes
Accepted

CrazyBump Shape Recognition

Based on the article, it seems like, when it adds "directional lighting information", the program tries to infer a location of a light source and base the normals on the colors with the ...
EthanKim8683's user avatar
4 votes
Accepted

Tone Mapping & Gamma Correction

This depends on your calculations really, since you can do it either way. However, probably when you reach tone mapping you will be in linear space (i.e. no gamma correction has been done yet and you ...
Tare's user avatar
  • 1,541
4 votes
Accepted

Resolution issue of generating a PNG icon for macOS menu bar

The issue is the difference between pixel and point sizes. On macOS and other Apple platforms, the user interface is measured in points, which don’t necessarily map one-to-one to pixels; on a Retina ...
Noah Witherspoon's user avatar
4 votes
Accepted

How to shift color values of a single RGB channel

I don't have any direct experience doing this so I might be missing an obvious solution or tool. That said, what you describe is in programming terms comparatively easy to achieve. The basic structure ...
bernie's user avatar
  • 820
4 votes
Accepted

Adding noise to gradient

It's generally a good idea to add noise like this when you're using a gradient, to avoid visible banding in the gradient, especially on smartphones. Often smartphone screens claim to be 24-bit colour ...
Dan Hulme's user avatar
  • 6,700

Only top scored, non community-wiki answers of a minimum length are eligible