5 ms·
I absolutely love this. However... I was wishing the recreation had been done in software rather than in Photoshop. I was hoping that some clever image proce
by VikingCoder 3y ago
I absolutely love this.
However... I was wishing the recreation had been done in software rather than in Photoshop.
I was hoping that some clever image processing would result in a Github Repository of a program that could take any photograph of a pixel image, and reproduce the original pixels. Handling all of the distortions along the way...
- jonny_eh 3y ago"Wow, amazing accomplishment, I just wish you did it a different way" HN is wild.
- VikingCoder 3y agoI'm not going to spend a day and a half reproducing old pixel art in Photoshop. I celebrate an artist who will take the time to do that, and I think their final result is fantastic. If there were a tool that would help me do this, there are situations where I would use it. I actually wrote a tool that took a PNG and helped me break out the original sprites, backgrounds, and fonts from an old video game. But I recognize that doing this from a photograph is a couple orders of magnitude more difficult. If anyone is looking for a technical challenge, and has the relevant skills, here I am highlighting how amazing I think it would be.
- codetrotter 3y ago“I'm not going to spend a day and a half reproducing old pixel art in Photoshop” ..instead, I will spend a month and a half writing a piece of software to reproduce the pixel art for me. :^)
- gorjusborg 3y agoThe effort the author is willing to put in is a main reason why this content is entertaining to me. The other main component is that he followed through and did it. Commentary by those who don't care enough to invest a day doing it, that also haven't done it, and that are being critical of the work seems pathetic and sad. The work itself is inspiring and joyful.
- VikingCoder 3y agoI don't feel I'm being critical at all. I hope I'm inspiring someone else to put in a parallel effort, with a different form of artistry - writing image processing rather than staring at Photoshop. If the artist took my comment as critical, I apologize - not my intent at all.
- kmoser 3y agoThat was my first thought: write software to find each pixel and put it in an array based on its color value. Then find the 32 densest clusters in the array (i.e. the 32 most frequently used colors), determine the average color value of each of those clusters, and that's your palette. Then run through each pixel again, and set it to the closest matching value from your palette. Done!
- VikingCoder 3y agoI think "find each pixel" is a lot harder than you and I are describing it. (I've done some of this work before.) Without knowing the intrinsic parameters of the camera, and how the photo from the camera was cropped, it's pretty rough... ...but on the other hand, with a high enough quality photograph, and a low enough resolution original image... it sure seems possible.
- wdfx 3y agoI was at least hoping he had an example image both in digital and print form from which to derive a mapping which could restore the pallette of four byte burger more accurately.
- zokier 3y agoHaving visible scan-lines should help a lot?
- chaorace 3y agoJust spitballing a high-level implementation: 1. Color correct for the CMYK printing process 2. Load image as a pixel matrix 3. Unwrap pixel matrix into a pixel vector 4. Convert the pixel vector to HSV representation 5. Group each pixel into a palette slot by plugging the H/S dimensions into K-means with 32 as the target (ignoring L for clustering to account for scanlines/flicker) 6. For each palette slot, calculate the "true" HSV value by taking the group's median H/S values and the mean V value 7. Convert HSV representation to 12-bit RGB colorspace
- chefandy 3y ago
- UltimateEdge 3y agoAfter using the scanlines to determine the grid size, I bet you could apply a pass of some filter in the frequency domain to remove the artefacts created by the CRT screen! Like here [1], where the author removes a moiré pattern created by the process of printing a photo. [1]: https://news.ycombinator.com/item?id=28663719 https://news.ycombinator.com/item?id=28663719
- chefandy 3y agoDoing the cleanup to get the kind of accuracy he was shooting for would take as long as creating it by hand.
- UltimateEdge 3y agoI meant cleaning up the scanlines to make it easier to sample the pixel colors. After running a Fourier transform you only need to paint over the obvious bright spots to remove these regular artefacts (see the linked article for a demonstration).
- chefandy 3y agoI mean, I'm not about to run any tests but I think you're underestimating how much work the human eyes do to iron out the little inconsistencies. I've done a lot of work with processing digitized images, and algorithmically converting a brand new 600dpi industrial flatbed scan of well-preserved black-and-white typed page into a 1-bit black-and-white tiff would often yield noisy, and sometimes unusable results for relatively clean looking images because our eyes see right through artifacts that most algorithms can't. I'm sure you could easily do the first 90% algorithmically– which is probably good enough for most developers— but for an artist to get the accuracy he was looking for, that last 10% would almost certainly take longer than the few hours he put into it.
- UltimateEdge 3y agoFair enough! Considering the LCD vs CRT comparison video game graphic posted elsewhere in the thread, you're probably right.
- mock-possum 3y agoEdit: nevermind, misunderstood