Episode #125 of the Stack Overflow podcast is here. We talk Tilde Club and mechanical keyboards. Listen now
21

In image processing, an image is "processed", that is, transformations are applied to an input image and an output image is returned. The transformations can e.g. be "smoothing", "sharpening", "contrasting" and "stretching". The transformation used depends on the context and issue to be solved. In computer vision, an image or a video is taken as input, and ...


15

You can't. You have video of the scene from a single vantage point. Without depth information, you can't infer what the scene would look like from another vantage point.


10

Since I created this I probably can explain it best ;-): the first step is to calculate an image segmentation which will combine small areas of similar colors into bigger chunks. The tolerance values of that segmentation will influence how big the biggest circles can become (higher tolerance => bigger areas => bigger circles) You proceed by processing each ...


9

If you can access the meta-data you could apply a number of heuristics: Check the white-balance setting, the camera has chosen for the photo. Basically it indicates the color temperature of the light at the time the photo was taken. Usually sunlight is around 5500 Kelvin. Indoor lighting or cloudy days, usually have different temperatures. Check the ...


9

The terms you probably want to google for are "inferring depth maps". Just like your brain tricks you into seeing 3d if you close one of your eyes, you can heuristically recover depth maps from single 2d images. See for example Make3D: Depth Perception from a Single Still Image Inferring Depth from Single Images in Natural Scenes Perceiving 3D from 2D ...


8

If I have understood your question correctly (an illustrative example would have been helpful), I would recommend either Gaussian blurring or linear interpolation depending on the behavior you are after. Both are simple and should perform relatively fast even on a handheld device. Linear interpolation (or rather bilinear interpolation) is simple but ...


8

GIF is only capable of storing images with at most 256 different colours. If you have such an image, the compression used by GIF is lossless. If you have an image with more than 256 different colours, you must first reduce the number of colours, which does indeed lose data but that's a preprocessing stage that isn't part of the compression process. Once you'...


8

Human eye is very sensitive to luminance change and order of magnitude less sensitive to chrominance change. MPEG under the hood is based on JPEG transform, so you have 8x8 blocks of DCT. It blurs a bit the whole block approximating it. Colour space changes to YUV or YCbCr, to encode two channels of colour and one of luminance. Luminance (grayscale if it was ...


7

There are actually three related terms: Luminance is a physical measure which represents the luminous intensity per unit area of light travelling in some direction. The units are candela per square metre. This is, if you like, an objective measure of how "intense" light is. Relative luminance is a measure how "intense" light appears to a human; since humans ...


7

Huffman coding, as usually applied, only considers the distribution of singletons. If $X$ is the distribution of a random singleton, then Huffman coding uses between $H(X)$ and $H(X)+1$ bits per singleton, where $H(\cdot)$ is the (log 2) entropy function. In contrast, predictive coding can take into account correlations across data points. As a simple ...


6

This is hard to do with color information alone. Color variations between (or even within) aerial and satellite imagery can be huge. Ideally you will want hyperspectral or at least infrared imagery (see this paper). Assuming your edge detection can snap to pixel boundaries, you can take each pixel's borders as a closed polygon and union them together to ...


6

Just an idea that might work. Let original image be $I_0$. Erode just enough to remove the thin lines, then dilate back to obtain $I_1$. Afterwards, obtain the difference of the $I_0$ and $I_1$.


6

I'm not from this field, but I believe the following advice holds in any field. First of all, I will suggest reading related literature; always a good idea. What do people in the field say about this topic? Is there an active community working on it? If not, you may find it hard to publish this work. In my discipline it is quite acceptable to publish ...


6

The idea of DeepDream is this: pick some layer from the network (usually a convolutional layer), pass the starting image through the network to extract features at the chosen layer, set the gradient at that layer equal to the activations themselves, and then backpropagate to the image. Why does it make sense? Intuitively, it amplifies the features that are ...


5

There are books on digital image processing which you can look into. Many common image manipulation techniques, such as smudging (usually known as blurring) are accomplished by image filtering, which is a process of applying a two-dimensional filter to an image: the value of each pixel in the new image is a linear combination of its original value and the ...


5

Shannon's entropy works as a hashing or fingerprinting function here; they are not injective which means we have to be careful not to interpret too much into relations of values. If $H(I_1) \neq H(I_2)$, then images $I_1$ and $I_2$ are certainly not the same. If $H(I_1) = H(I_2)$ (or even $H(I_1) \approx H(I_2)$), however, we know nothing. The images might ...


5

There are three kinds of JPEG artifacts. The first and (arguably) most important one is described in Yuval's answer: To a first order the problem is that under high compression all the high frequency information is discarded, and the lowest frequency information remaining is the average color of each 8x8 square. When you take the inverse but leave out the ...


5

Both matrices relate corresponding points in two images. The difference is that in the case of the Fundamental matrix, the points are in pixel coordinates, while in the case of the Essential matrix, the points are in "normalized image coordinates". Normalized image coordinates have the origin at the optical center of the image, and the x and y coordinates ...


5

From one perspective, a picture is a 2D image, because it has height and width. But from a machine learning perspective, we can think of a picture as a point in a high-dimensional space. In particular, suppose we have a greyscale picture that is $m\times n$ pixels, i.e., $m$ pixels wide and $n$ pixels high. Then there are a total of $mn$ pixels in the ...


4

The Laplacian is indeed used in image processing routinely but, possibly not as much as Fourier transforms. Reasons (other than just the difference in span of uses, narrow vs wider) may be: Fourier transforms have been highly optimized due to their wide application, and are possibly less complicated theoretically than the Laplacian. sometimes the Laplacian ...


4

If you do not flip the kernel, you simply obtain a different operation that is called cross correlation. When the filter is symmetric, like a Gaussian, or a Laplacian, convolution and correlation coincides. But when the filter is not symmetric, like a derivative, you get different results. The reason why convolution is preferred over correlation is that it ...


4

If you have one or several images of a particular "sink" or object, then you can possibly use SIFT or SURF or other feature extraction/matching algorithms to match the objects up. You can investigate the OpenCV project (wikipedia, project); it includes many of these (possibly patented) algorithms. You can get an idea of how they work and what they can do by ...


4

There are multiple approaches which can be taken into account. Some of them are mentioned above. From what you want I think you should apply a combination of techniques to get good results. In my opinion you should start with blob matching (affine invariant) -> followed by keypoint feature matching inside the blob to verify the result. I think this ...


4

The artefact that you see in JPEG comes from the fact that JPEG divides the image into $8\times 8$ blocks of pixels and compresses them separately. The $8\times 8$ blocks are visible very clearly in the JPEG appearing in your question. When the image is decompressed, often there is no effort to smooth the boundary regions, and this results in a "blocking" ...


4

It's important that all of the training and test images have the same aspect ratio but it doesn't necessarily have to be the natural one. If you think about it for a while you can see why that is. For example, if you're making a face detector and you have altered the aspect ratio to make all the faces look abnormally tall and skinny then you have a tall and ...


4

The constraint satisfaction problem (CSP) is NP-complete. Identifying blobs is a question about graph connectivity which is in P. Therefore, yes, the question you're asking reduces to CSP but this doesn't tell you anything useful: it just says that CSP is at least as hard as this problem but it might be harder. (In fact, it is strictly harder if P$\neq$NP....


4

Nonlinear Signal and Image Processing: Theory, Methods, and Applications defines topological distance as follows. First, you have to define when two pixels are neighbors. The book offers two possibilities: The neighbors of a pixel are the 4 "cardinal" pixels around it. The neighbors of a pixel are the 8 pixels surrounding it. This defines a graph (two ...


4

It seems that you're just trying to find the connected components of a graph. In this case, the vertices are the non-black pixels and there's an edge between two pixels if they're at distance at most $d$, for some appropriate choice of $d$ and some appropriate metric (Euclidean distance, Manhattan distance, whatever works best). (Note that, in ...


4

The state of the art in such problems is done these days via deep neural networks. Among others, two popular and recent approaches for solving the problem of detection and localization of objects are the YOLO paper, and the faster-RCNN, which run a classifier over many variously sized regions in an image. As humans, boats and cars are popular object ...


4

This will not be an algorithm in the usual sense. It's a bunch of heuristics that you may find useful. The main difficulty comes from the undefined nature of the phrase "visually similar". If I understand your question correctly. You have a few separate problems: Defining what pairwise "visual similarity" is You are looking for a function $S$ of two ...


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