For most of us, taking bad pictures is incredibly easy. Band-Aid or remedy, digital post-processing can involve altering the photographed scene itself. Say you’re trekking through the mountains taking photos of the horizon, or you’re walking down the street and catch a beautiful perspective of the city, or it’s finally the right time to put the new, expensive phone camera to good use and capture the magic of this riverside… Just why do all the pictures look so bad? They’re all foggy! It’s not that you’re a bad photographer—OK, maybe you are—but that you’ve stumbled on a characteristic problem in outdoor photography: haze.
What is haze? Technically, haze is scattered light, photons bumped around by the molecules in the air and deprived of their original color, which they got by bouncing off the objects you are trying to see. The problem gets worse with distance: the more the light has to travel, the more it gets scattered around, and the more the scene takes that foggy appearance.
What can we do? What can possibly help our poor photographer? Science, of course.
Wolfram recently attended and sponsored the 2014 IEEE International Conference on Image Processing (ICIP), which ended October 30 in Paris. It was a good occasion to review the previous years’ best papers at the conference, and we noticed an interesting take on the haze problem proposed by Chen Feng, Shaojie Zhuo, Xiaopeng Zhang, Liang Shen, and Sabine Süsstrunk . Let’s give their method a try and implement their “dehazing” algorithm.
The core idea behind the paper is to leverage the different susceptibilities of the light being scattered, which depend on the wavelength of the light. Light with a larger wavelength, such as red light, is more likely to travel around the dust, the smog, and all the other particles present in the air than shorter wavelength colors, like green or blue. Therefore, the red channel in an image carries better information about the non-hazy content of the scene.
But what if we could go even further? What prevents us from using the part of the spectrum slightly beyond the visible light? Nothing really—save for the fact we need an infrared camera.
Provided we are well equipped, we can then use the four channels of data (near infrared, red, green, and blue) to estimate the haze color and distribution and proceed to remove it from our image.
November 17, 2014 — Wolfram Blog Team
This week Wolfram will be celebrating Benoit Mandelbrot‘s birthday and his contributions to mathematics by holding a Tweet-a-Program challenge. In honor of Mandelbrot, tweet us your favorite fractal-themed lines of Wolfram Language code. Then, as with our other challenges, we’ll use the Wolfram Language to randomly select winning tweets (along with a few of our favorites) to pin, retweet, and share with our followers. If you win, we’ll send you a free Wolfram T-shirt!
In Tweet-a-Program’s first few exciting months, we’ve already seen a number of awesome fractal examples like these:
November 10, 2014 — Christopher Carlson, Senior User Interface Developer, User Interfaces
This year’s Wolfram Technology Conference once again included the One-Liner Competition, an opportunity for some of the world’s most talented Wolfram Language developers to show us the amazing things you can do with tiny pieces of Wolfram Language code.
In previous years, One-Liner submissions were allowed 140 characters and 2D typesetting constructs. This year, in the spirit of Tweet-a-Program, we limited entries to 128-character, tweetable Wolfram Language programs. That’s right: we challenged them to write a useful or entertaining program that fits in a single tweet.
And the participants rose to the occasion. Entries were blind-judged by a panel of Wolfram Research developers, who awarded two honorable mentions and first, second, and third prizes.
One honorable mention went to Michael Sollami for his “Mariner Valley Flyby,” which takes you on a flight through the terrain of the Mariner Valley on Mars. The judges were greatly impressed by the idea and the effect. Unfortunately, a small glitch in the program is visible at the start of the output, due to an error in the code. Since Michael’s submission is right up against the 128-character limit, it would have taken some clever tweaking to fix it.
October 27, 2014 — Wolfram Blog Team
Halloween is quickly approaching, and to help you gear up for trick-or-treating, costume parties, and pumpkin carving, we’re issuing another Tweet-a-Program Code Challenge! This time, instead of spaceships and planets, we want you to tweet us your spookiest Halloween-themed lines of Wolfram Language code. We’ll then use the Wolfram Language to randomly select three winning tweets (and a few of our favorites) to pin, retweet, and share with our followers. Winners will also be awarded a free Wolfram T-shirt!
Take some inspiration from these examples, while you come up with your creepy codes:
September 4, 2014 — Jon McLoone, International Business & Strategic Development
I first came across the knight’s tour problem in the early ’80s when a performer on the BBC’s The Paul Daniels Magic Show demonstrated that he could find a route for a knight to visit every square on the chess board, once and only once, from a random start point chosen by the audience. Of course, the act was mostly showmanship, but it was a few years before I realized that he had simply memorized a closed (or reentrant) tour (one that ended back where he started), so whatever the audience chose, he could continue the same sequence from that point.
In college a few years later, I spent some hours trying, and failing, to find any knight’s tour, using pencil and paper in various systematic and haphazard ways. And for no particular reason, this memory came to me while I was driving to work today, along with the realization that the problem can be reduced to finding a Hamiltonian cycle—a closed path that visits every vertex—of the graph of possible knight moves. Something that is easy to do in Mathematica. Here is how.
February 12, 2014 — Vitaliy Kaurov, Technical Communication & Strategy
An original gift can make people feel much warmer, especially in the icy weather affecting so many places this winter—including our headquarters. Valentine’s Day is a good excuse to get a little creative in the art of gift making. And for me, “getting creative” long ago became synonymous with programing in the Wolfram Language. It is that medium that compels me to treat programming as art, where one can improvise, easily pulling magical rabbits out of a hat.
So what shall we make? I think the best gift is a DIY one—especially if it says a lot without even making a sound. Below you see a 3D-printed silver earring in the shape of a sound wave recorded while a person is saying “I love you.”
January 20, 2014 — Jon McLoone, International Business & Strategic Development
Rock-paper-scissors* isn’t obviously interesting to look at mathematically. The Nash-equilibrium strategy is very simple: choose equally and randomly from the three choices, and (in the long run) your opponent will not beat you (nor will you beat your opponent). Nevertheless, it’s still possible for a computer strategy to beat a human player over a long run of games.
My nine-year-old daughter showed me one solution with a Scratch program that she wrote that won every time by looking at your choice before making its decision! But I will walk you through a simple solution that wins without cheating.
January 14, 2014 — Christopher Carlson, Senior User Interface Developer, User Interfaces
We have a programming competition every year at the Wolfram Technology Conference, which in past years was the Mathematica One-Liner Competition (2010, 2011). This year we held the Egg-Bot Challenge, a change of pace to give attendees a chance to exercise their graphics skills.
The idea of the competition was to use Mathematica to generate designs that could be plotted on spheres via Egg-Bots, computer-controlled plotters that draw on eggs, Ping-Pong balls, light bulbs, mini-pumpkins, golf balls… nearly anything spherical or ovoid that is less than four inches in diameter.
October 30, 2013 — Allison Taylor, Public Relations
I was lucky enough in college to be able to double-major in physics and film/media. One of the coolest connections that formed from these completely opposite subjects was the use of Mathematica. What started out as just a computational tool for all the work in my physics classes turned into an experimental playground for the digital animation I was creating in my film classes.
Mathematica is an ideal program to model the true science of motion. And as you’ll come to see, it looks complicated, but is actually quite simple!
Let’s start with understanding some basic human anatomy (or zombie anatomy, since this post is technically about zombies):
October 8, 2013 — Jason Martinez, Research Programmer
Recently the author of xkcd, Randall Munroe, was asked the question of how long it would be necessary for someone to fall in order to jump out of an airplane, fill a large balloon with helium while falling, and land safely. Randall unfortunately ran into some difficulties with completing his calculation, including getting his IP address banned by Wolfram|Alpha. (No worries: we received his request and have already fixed that.)