Gabor Filter – Image processing for scientists and engineers, Part 6

Gabor Kernel

In the last two sections of this tutorial, we discussed Gaussian and Fourier kernels. The Gaussian kernel is good at weighting neighbors by their proximity to the pixel of interest, and the Fourier kernel gives us information about patterns in the image. So, uh, let’s… multiply… them?     Look at that. New filter. When kernel-ized, it looks like: Its functionality can be summarized by Read More →

Fourier Frequency Analysis – Image processing for scientists and engineers, Part 5

Fourier Kernel

Fourier transforms are something that come up all the time in science, so they’re worth including here. That being said, they’re a lot more specialized than taking gradients or blurring an image, so I won’t be offended if you gloss over this part. At their core, Fourier transforms are really simple. Taking the one-dimensional example of audio signal processing, let’s say you have some music Read More →

Gaussian Blur – Image processing for scientists and engineers, Part 4

Gaussian Kernel

Okay, so we’ve worked with pixels and their immediate neighbors, but what about the non-immediate neighbors? Easily enough, we can include them by increasing our kernel size. The previous 3×3 kernels cover immediate neighbors, 5×5 kernels go two steps away, 7×7 is three steps, and so on. Cool, let’s do something with this. What if, rather than weighting all neighbors equally, we weight them based Read More →

Gradients – Image processing for scientists and engineers, Part 3

sobel

In the previous section, we discussed the idea of image convolution, which allows us to gather information on groups of pixels. What can we do with this? Well, a lot. Let’s start simple. Remembering that images are data, we can start thinking about slopes. The data has two dimensions, and , so it has two gradients, and . Seeing how is just , you could Read More →

Convolution – Image processing for scientists and engineers, Part 2

living_room_100x75_blue_convolution

In the first part of this tutorial, I covered the basics of image processing – viewing images as data, iterating through pixels, and performing basic operations. This part will cover the idea of image convolution, and future parts will go on to discuss some of the more popular uses of the technique. As the field of image processing is heavily influenced by mathematicians, there are Read More →

Images are data – Image processing for scientists and engineers, Part 1

Furniture Threshold, 100x75

The need to extract information from images and videos is a perennial issue in experimental work. As such, scientific image processing is a topic I’ve been wanting to address for some time now. My goal is for this post to blossom into a multi-part tutorial on the topic – something comprehensive enough to merit calling it a “tutorial”, yet fast-paced enough for time-crunched scientists to Read More →

Chemical Network Algorithms

Angewandte Cover

Our lab recently got three papers published in a single issue of Angewandte Chemie about our work incorporating graph theory into chemistry (here, here, and here!). Among these was my first first-author paper, which is a biggish deal in the science world. So, that’s exciting. Although the three papers address different issues, their underlying approaches are very similar. By viewing chemistry as a connected network, Read More →

Data Management for Scientists

fcs

I’ve spent the last few months working with the folks at Codecademy to create a tutorial targeted at experimentalists. It covers what I have found to be the most commonly-encountered-but-easily-solvable problem in experimental science: data management. Especially with older machines, data is often generated in non-ideal formats. The data might present itself in obscure text files, or maybe you only need every nth datapoint. Regardless, the Read More →

Molecules in Blender

caffeine_occlusion

tl;dr – A github repo containing all of this and much more can be found here. Follow the readme to use. As a whole, science and technology have made incredible advancements in aesthetics. Programming presentations are succinct, biologists have made videos like this and this, and physicists can point to, like, every image of space ever taken. However, most chemistry graphics look like they were Read More →

Texting from a computer in Python

Server Rack

Here’s a script to send a text message in Python. It uses the standard library and is very straightforward. It utilizes the fact that most major carriers allow texting via email (ie. by SMTP), so nothing more is needed than an email account and a desired target. In my work, I use it to tell me when my computational simulations are done running. Also, it Read More →

Post Navigation