Swapping Position and Brightness in Grayscale Images
Creative
image processing
SHOW HN2017
Swapping Position and Brightness in Grayscale Images
Swapping Position and Brightness in Grayscale Images
productchart.com#grayscale image#luma waveform#image transform#brightness histogram
How HN took it
3 positive, 9 neutral or asking, 1 mixed, 0 critical, out of 13 comments about the project. Thread score +0.17.
Idea: 2 for, 0 againstExecution: 1 for, 0 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Entertaining simple algorithm with interesting results
From 2 comments
It would be neat to provide an "iterations" parameter that runs the algorithm N times over the source image. It could be implemented a slider so the results can be animated,…
chrisparton1991 on HNThis is a crazy transform to wrap your head around. Given the impl, I think I would restate it as B'(x,y) = ARGMAX(B(u,y)=x, u) -- that is, the brightness at x,y in the new image…
brian-armstrong on HN
Improved averaging produces better image
From 1 comment
Awesome! The background gradient bar seems reasonable now, you can see that it's about hakf brightness which makes more sense to me :)
brian-armstrong on HN
Objections
Swapping x with brightness is misleading; dithering exaggerates perceived brightness variation
From 1 comment
You can keep one of the dimensions by making a histogram a 3d surface. 3d surface f(x,y)->z can be displayed as flat image with brightness representing z value. Brightness can be…
Karliss on HN
Not a true histogram; it keeps positional information
From 2 comments
Isn't histogram an entirely different thing? As far as I know, to make a histogram you'd iterate over all pixels and, for each of them, increment histogram[pixelBrightness]. Here…
TeMPOraL on HNDoesn't a histogram throw away the positional element of the pixel entirely and bin by the number of pixels at a particular brightness? This doesn't seem to do that ...
emeraldd on HN
Requests
Select a region of the original image to focus on
From 1 comment
I wish the demo had the ability to select a region in the original image to focus on. See http://svgjs.com/svg.draw.js/demo/index.html
swframe2 on HN
Add an iterations parameter to run the algorithm repeatedly with a slider
From 1 comment
It would be neat to provide an "iterations" parameter that runs the algorithm N times over the source image. It could be implemented a slider so the results can be animated,…
chrisparton1991 on HN
Questions
Is there a link to an example of this histogram type
From 1 comment
Interesting. Do you have a link to such a histogram?
no_gravity on HN
Would a proper average improve the image
From 1 comment
Correct! In fact, I already use a poor mans average. Initially newImage is all black and then: ``` b=oldImage[x,y]; xa=(newImage[b,y]+x)/2; // poor mans average newImage[b,y]=xa;…
no_gravity on HN
Alternatives named
Luma waveform monitors in video equipment and grading software
From 3 comments
Modern waveform monitors usually have a feature that does exactly this. They replaced the older analog waveform monitors, which achieved a visually similar result but through…
pierrec on HNThis is used a lot in grading video, where it is called a luma waveform. Here's a quick tutorial: https://youtu.be/qt1XpfFMyyw
arnarbi on HNYes it does. This is similar to what is shown on the video scopes of television engineers in the luma waveform view.…
nhoiunh4nth on HN
Luma parade and RGB parade views
From 1 comment
Specific feature is colloquially known as luma parade. Also done using RGB channels, (inventively) referred to as RGB parade. Also, on video monitors the parade is usually done…
amaterasu on HN