Embedded Image Processing on the TMS320C6000 DSP

Linear Filtering of Images on The TI C64X (Image Processing) Part 2

A Memory-Optimized 2D Low-Pass Filter (blur3x3_imglib_paging_dma) In previous sections, we proceeded through a step-by-step dissection of an optimization of 2D image filtering by reducing memory latencies – now that we have seen this once, we can cut to the chase. Listing 4-7 are the relevant portions of the blur3x3_imglib_paging_dma. c file, which can be found […]

Non-Linear Filtering of Images (Image Processing) Part 1

Linear filters have the property that their output is a linear combination of their input. Filters that do not satisfy this property are non-linear. Nonlinear filters are not employed in image processing as frequently as linear filters, because in many cases they are based on heuristics closely tied to the particular application. The general idea […]

Non-Linear Filtering of Images (Image Processing) Part 2

Non-Linear Filtering of Images in MATLAB As its name suggests, the Image Processing Toolbox function medfilt2 performs two-dimensional median filtering (the medfilt function is also available for median filtering of one-dimensional signals). The arguments for medfilt2 are straightforward: the input image, the size of the mask, and an optional third argument specifying how to handle […]

Non-Linear Filtering of Images (Image Processing) Part 3

Generating Noise with the Standard C Library This project includes a class named AddNoise, which corrupts an image with salt and pepper noise. As we saw in the MATLAB code, generating image noise depends on pseudo-random number generation routines. While the standard C library does not have all of the helpful utility functions that MATLAB […]

Non-Linear Filtering of Images (Image Processing) Part 4

Median Filtering on the TI C6416 DSK Two median filtering C64x programs can be found on the CD in the Chap4\median_filter directory. Both use the infrastructure developed in the previous topic, where DMA is used to page blocks of image data into internal RAM, those scan-lines are filtered, and then the processed pixels are paged […]

Adaptive Filtering (Image Processing) Part 1

Section 4.5.2 focused on using the median filter to enhance images corrupted by shot noise. It was shown that low-pass filters do not perform as well as median filters in removing impulse noise, because the spatial smoothing mixes any image-independent noisy outliers with the signal content. The median filter, on the other hand, was found […]

Adaptive Filtering (Image Processing) Part 2

Adaptive Image Filtering in MATLAB The imnoise function in the Image Processing Toolbox can be used to add speckle noise to an image by passing in the string ‘speckle’ and the noise variance as input arguments to the function. Note that the noise variance argument in this sense is not the same as <x„2 – […]

Adaptive Filtering (Image Processing) Part 3

MMSE Filtering on the C6416 Unfortunately there are no IMGLIB functions we can leverage to implement adaptive image filtering on the C6x platform. However, since so many adaptive image filtering algorithms are a twist on a single theme that necessitates calculation of local pixel statistics, an MMSE implementation is very useful because once the core […]

Edge Detection (Image Processing) Part 1

In this topic, the focus shifts to image analysis, which in some respects is a more difficult problem. Image analysis algorithms draw on information present within an image, or group of images, to extract properties about the scene being imaged. For example, in machine vision applications, images are analyzed to oftentimes determine the orientation of […]

Edge Detection (Image Processing) Part 2

An Interactive Edge Detection Application with MATLAB, Link for Code Composer Studio, and RTDX Previous embedded DSP applications in this topic either used CCStudio file I/O facilities (accessed via various menu options within the IDE) to feed data to and from the DSP, or image data was hard-coded into an array at compile-time by placing […]