We’re rewarding the question askers & reputations are being recalculated! Read more.
135

I have thought about this some more, and think that the following should be fairly stable. Note that I have limited myself to morphological operations, because these should be available in any standard image processing library. (1) Open image with a nPix-by-1 mask, where nPix is about the vertical distance between letters #% read image img = rgb2gray('http:...


93

But what does frequency spectrum means in case of images? The "mathematical equations" are important, so don't skip them entirely. But the 2d FFT has an intuitive interpretation, too. For illustration, I've calculated the inverse FFT of a few sample images: As you can see, only one pixel is set in the frequency domain. The result in the image domain (I've ...


62

Both SIFT and SURF authors require license fees for usage of their original algorithms. I have done some research about the situation and here are the possible alternatives: Keypoint detector: Harris corner detector Harris-Laplace - scale-invariant version of Harris detector (an affine invariant version also exists, presented by Mikolajczyk and Schmidt, ...


60

A similar question was asked on Mathematica.Stackexchange. My answer over there evolved and got quite long in the end, so I'll summarize the algorithm here. Abstract The basic idea is: Find the label. Find the borders of the label Find a mapping that maps image coordinates to cylinder coordinates so that it maps the pixels along the top border of the ...


60

The simple answer is that unlike RGB, HSV separates luma, or the image intensity, from chroma or the color information. This is very useful in many applications. For example, if you want to do histogram equalization of a color image, you probably want to do that only on the intensity component, and leave the color components alone. Otherwise you will get ...


56

In Mathematica, using erosion and Hough transform: (*Get Your Images*) i = Import /@ {"http://i.stack.imgur.com/4ShOW.png", "http://i.stack.imgur.com/5UQwb.png"}; (*Erode and binarize*) i1 = Binarize /@ (Erosion[#, 2] & /@ i); (*Hough transform*) lines = ImageLines[#, .5, "Segmented" -> True] & /@ i1; (*Ready, show them*) Show[#...


56

You're not looking for edges (=borders between extended areas of high and low gray value), you're looking for ridges (thin lines darker or brighter than their neighborhood), so edge filters might not be ideal: An edge filter will give you two flanks (one on each side of the line) and a low response in the middle of the line: ADD: If've been asked to explain ...


49

Your image doesn't have uniform brightness,so you shouldn't work with a uniform threshold. You need an adaptive threshold. This can be implemented by preprocessing the image to make the brightness more uniform across the image (code written in Mathematica, you'll have to implement the Matlab version for yourself): A simple way to make the brightness uniform ...


45

This post has been updated a lot. On the top, you can see link updates. Below, variations on the initial answer. For the short version: successes of convolutional neural networks and deep learning look like a sort of Galilean revolution. For a practical point of view, classical signal processing or computer vision are dead... provided that you have enough ...


42

The color information is usually much more noisy than the HSV information. Let me give you an example: Me and some friends were involved in a project dealing with the recognition of traffic signs in real scene videos (noise, shadows and sometimes occlusion present). It was a part of a bigger project, so that allowed us time to try out different approaches ...


39

Convolution is correlation with the filter rotated 180 degrees. This makes no difference, if the filter is symmetric, like a Gaussian, or a Laplacian. But it makes a whole lot of difference, when the filter is not symmetric, like a derivative. The reason we need convolution is that it is associative, while correlation, in general, is not. To see why this ...


35

Maybe you can be more specific about the scope and scale of your work (academic project? Desktop or Mobile commercial product? Web-based commercial project?). Some recommendations and comments: Matlab is common in the academic world, and quite good for sketching/validating ideas. You will have access to a large body of code from other researchers (in CV ...


31

The Hough transform and the Radon transform are indeed very similar to each other and their relation can be loosely defined as the former being a discretized form of the latter. The Radon transform is a mathematical integral transform, defined for continuous functions on $\mathbb{R}^n$ on hyperplanes in $\mathbb{R}^n$. The Hough transform, on the other hand,...


31

There are many for different subjects - Efg's algorithm collection : http://www.efg2.com/Lab/Library/ImageProcessing/index.html DSP Forum : http://www.dsprelated.com/ Data compression - http://datacompression.info/ About rendering - http://www.realtimerendering.com/portal.html For all research papers - http://ieeexplore.ieee.org/Xplore/guesthome.jsp ...


31

The meaning of that formula is really quite simple. Imagine you take two same-sized small areas of an image, the blue one and the red one: The window function equals 0 outside the red rectangle (for simplicity, we can assume the window is simply constant within the red rectangle). So the window function selects which pixels you want to look at and assigns ...


29

Hmmm... I guess Radon transform isn't that easy to extract from. (Radon transform basically rotates the image while "looking through it" edge-on. It's the principle behind CAT scans.) The transform of your image produces this sinogram, with the "rivers" forming bright peaks, which are circled: The one at 70 degrees rotation can be seen pretty clearly as ...


29

Consider the following: clam-project.org: CLAM (C++ Library for Audio and Music) is a full-fledged software framework for research and application development in the Audio and Music Domain. It offers a conceptual model as well as tools for the analysis, synthesis and processing of audio signals. MARF: MARF is an open-source research platform and a ...


29

I think this was put very well in the well known "DSP guide" (chapter 24, section 5): Fourier analysis is used in image processing in much the same way as with one-dimensional signals. However, images do not have their information encoded in the frequency domain, making the techniques much less useful. For example, when the Fourier transform is ...


29

I don't know which algorithm Google uses. But, since you wanted a best guess, let me give some ideas on how a similar system could be constructed. The whole field dealing with search-image-base-by-image is called Content Based Image Retrieval (CBIR). The idea is to, somehow, construct an image representation (not necessarily understandable by humans) that ...


28

Image processing applications are different from say audio processing applications, because many of them are tuned for the eye. Gaussian masks nearly perfectly simulate optical blur (see also point spread functions). In any image processing application oriented at artistic production, Gaussian filters are used for blurring by default. Another important ...


26

Overview The short answer is that they have the maximum number of vanishing moments for a given support (i.e number of filter coefficients). That's the "extremal" property which distinguishes Daubechies wavelets in general. Loosely speaking, more vanishing moments implies better compression, and smaller support implies less computation. In fact, the ...


26

There is a relatively new method, you might want to look into: BRISK, Binary Robust Invariant Scalable Keypoints: In this paper we propose BRISK, a novel method for keypoint detection, description and matching. A comprehensive evaluation on benchmark datasets reveals BRISK’s adaptive, high quality performance as in state-of-the-art algorithms, albeit at a ...


25

The field itself is too vast. So i doubt you can have a fully exhaustive list here. However, MPEG 7 is one of the primary effort in standardizing this area. So what is included here is not universal - but at least the most primary. Here are some key feature set which are identified in MPEG7 ( I can really talk only about Visual Descriptors not others see ...


24

I do not think mine will be a complete answer, but I'll offer what I know and since this is a community edited site, I hope somebody will give a complimentary answer soon :) Adaptive thresholding methods are those that do not use the same threshold throughout the whole image. But, for some simpler usages, it is sometimes enough to just pick a threshold ...


23

A filter F is called "linear", iff for any scalars $c_1$, $c_2$ and any images $I_1$ and $I_2$: $F\left(c_1\cdot I_1+c_2\cdot I_2\right)=c_1\cdot F\left(I_1\right)+c_2\cdot F\left(I_2\right)$ This includes: Derivatives Integrals Fourier transform Z-Transform Geometric transformations (rotate, translate, scale, warp) Convolution and Correlation the ...


22

From a computer vision perspective: the basic problem is estimating a homography between your target point set and a subset of points in the large set. In your case, with rotation only, it will be an affine homography. You should look into the RANSAC method. It is designed to find a match in a set with many outliers. So, you are armed with two important ...


22

Smoothing can be done in many ways, but in very basic and general terms it means that you even out a signal, by mixing its elements with their neighbors. You smear/blur the signal a bit in order to get rid of noise. For example, a very simple smoothing technique would be, to recalculate every signal element f(t) to as 0.8 of the original value, plus 0.1 of ...


22

In addition to the answer of penelope, there are two approaches, perceptual hashing and the bag-of-words model whose basic functionality is easily implemented and are therefor nice to play with or to learn from, before venturing into more advanced territory. Perceptual hashing Perceptual hashing algorithms aim to construct a hash, that unlike a ...


22

Similar to one dimensional signals, low frequencies in images mean pixel values that are changing slowly over space, while high frequency content means pixel values that are rapidly changing in space. For example, the following image has strong low frequency components: You can intuitively see how I simply have a sin-wave propagating at some low frequency. ...


21

This is an extremely difficult problem. I was part of a team that worked on it for several years, and having developed and supported other such applications for a long time I can say that dent detection is a particularly tricky problem, and much harder than it looks at first. Having an algorithm work under lab conditions or on known images is one thing; ...


Only top voted, non community-wiki answers of a minimum length are eligible