WOLFRAM

Wolfram Language

Computation & Analysis

Removing Haze from a Color Photo Image Using the Near Infrared with the Wolfram Language

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 [1]. 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.
Computation & Analysis

Fractal Fun: Tweet-a-Program Mandelbrot Code Challenge

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:
Computation & Analysis

Announcing the Winners of the 2014 One-Liner Competition

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.
Best of Blog

Modeling a Pandemic like Ebola with the Wolfram Language

Data is critical for an objective outlook, but bare data is not a forecast. Scientific models are necessary to predict pandemics, terrorist attacks, natural disasters, market crashes, and other complex aspects of our world. One of the tools for combating the ongoing and tragic Ebola outbreak is to make computer models of the virus's possible spread. By understanding where and how quickly the outbreak is likely to appear, policy makers can put into place effective measures to slow transmissions and ultimately bring the epidemic to a halt. Our goal here is to show how to set up a mathematical model that depicts a global spread of a pandemic, using real-world data. The model would apply to any pandemic, but we will sometimes mention and use current Ebola outbreak data to put the simulation into perspective. The results should not be taken as a realistic quantitative projection of current Ebola pandemic.
Computation & Analysis

Calling All Goblins: Tweet-a-Program Halloween Code Challenge

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:
Education & Academic

First Tweet-a-Program Code Challenge: Space Week

In honor of World Space Week and this year’s theme of satellite navigation, “Space: Guiding Your Way,” we’re issuing a Tweet-a-Program Code Challenge focused on anything to do with space and getting there. You tweet us your "space-iest" line(s) of Wolfram Language code, and then we’ll use the Wolfram Language to randomly select three winning tweets (plus a few favorites) to shower with retweets, pin or post to our wall, and receive a free Wolfram T-shirt! Any space-themed submissions tweeted to us @wolframtap all day Thursday and Friday (12am PDT Thursday, October 9 through 11:59pm PDT Friday, October 10) will be eligible to win. To not waste needed code space, no hashtag is required with your original submission, but we encourage you to share your results by retweeting them with hashtag #wsw2014 and #tapspaceweek. In addition to satellite path tracking and real-time analysis, the Wolfram Language gives you access to all sorts of entities, formulas, and other functionality for astronomical computation and coding---from supernovas, comets, and constellations to the Sun, deep space, and other galaxies. Maybe you want to remix the planets and their colors, as Stephen Wolfram did in one of his first Tweet-a-Program tweets:
Products

Introducing Tweet-a-Program

In the Wolfram Language a little code can go a long way. And to use that fact to let everyone have some fun, today we’re introducing Tweet-a-Program. Compose a tweet-length Wolfram Language program, and tweet it to @WolframTaP. Our Twitter bot will run your program in the Wolfram Cloud and tweet back the result.

Education & Academic

Mathematica Summer Camp 2014 Comes to a Close

Thirty students from six different countries came together to explore their passion for programming and mathematics for two weeks in July, and the result was extraordinary! Each and every one of these students created a significant Wolfram Language project during the camp. Their projects and interests ranged from physics and mathematics to automotive engines to poker and blackjack.
Computation & Analysis

Solving the Knight’s Tour on and off the Chess Board

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.