2-D IMAGE PROCESSING

ALGORITHMS


MATLAB SOFTWARE:

If you have any trouble down loading, unzipping or using the programs, let us know by email. We use most of these programs often but you should consider them beta versions and your email will prompt us to correct any problems.

FORMAT CONVERSION:

Convert MATRIX format to MATLAB matrix(last update 4-10-97) slmp2mat.zip

IMAGE PROCESSING:

K=imp_fn2(x,y): Kronecker impulse function. (imp_fn2.m)

B=binarize(A): Convert A to binary by thresholding halfway between its maximum and minimum value. (binarize.m)

C=caperture(x,y,r): Create a circular binary aperture in a matrix C of radius r. (caperture.m)

C=dilate(A,B): The matrix A is dilated by the structuring element B. This algorithm uses linear correlation to approximate dilation defined for mathematical morphology. (dilate.m)

C=erode(A,B): The matrix A is dilated by the structuring element B. This algorithm uses linear correlation to approximate erosion defined for mathematical morphology. (erode.m)

B=gaperture(rx,ry,x,y): The matrix B is a gaussian aperture. Rx and ry are the "variance" parameters and x,y are the coordinates. (gaperture.m)

Y=irect(Ty,Tx,My,Nx): The Y matrix is a rectangular aperture. The aperture is centered at indices 1,1 and wrapped around all four corner of the image. For perfect symmetry, make the rectangle size Ty, Tx odd values. (irect.m)

Y=pulsetrain2(x,y,Tx,Ty): The Ymatrix is a comb function of a 2-D grid of Kronecker delta functions. The pulse spacing is Tx,Ty and the coordinates are x,y. (pulsetrain2.m)

B=shift(A): The matrix a circularly shifted half its width and length, then mapped to B. The matrix A can be complex and B will be complex because complex correlation is used to conduct the shifting process. (shift.m)

B=threshsea(A,threshold): The matrix A is modified by the threshold level (0 to 1). If threshold is 0, the sea level is at the minimum of A whereas if threshold is 1, the sea level is at the maximum of A. For values inbetween the image is modified to be 0 if the A element is below the threshold and not modified if the A element is above the sea level. The final image is scaled between 0 and 1. (threshsea.m)

B=zeropad(A,Bsize): The matrix A is zero padded to be size Bsize. (zeropad.m)

M files for image rotation, SOBEL edge enhancement, Centroid and correlation(last update 4-18-97) mfiles.zip

MATLAB FAQS

How do I plot a matrix as an image?

Answer:

Figure(1); %open or select image window 1

imagesc(A); % plot real matrix A to selected window

colormap gray; % convert and scale A elements between 0 and 255.

axis image; % make pixels square

axis off; % remove axis labels

zoom on; % allow you to click and zoom in on matrix image A

How do I input or output bitmap images?

Use imread or imwrite and you can I/O several image formats!

 


WINDOWS SOFTWARE:


IMAGE CAPTURE:

061505:

You will need to buy and install a Logitech ClickSmart 420 web cam

Also install the software that comes with it.

Download and setup variables as shown in example jpg

The program basically stores a sequence of bmp files and then you can play them back. You can set a time of day to take the sequence and you can set thresholds so the images are only taken if something changes in the image. Also, it will wrap around so you must set a big enough number of images. Figure each image is 1 megabyte. In the future if people let me know they are using this, I will install jpg capability and may upgrade to different webcams as the 420 goes out of production. The original program was intended for studying color so it has some interesting functions.

websecurity.exe

The following example is setup to store Nmax=10 images in websecurity folder.

webcamsecurity.jpg

IMAGE PROCESSING:

VIEWING SLAMP MATRIX and BMP: slpview.exe (updated 10-12-98). Allows conversion between SLAMP and BMP formats, color enhancement, etc..

CHANGING BMP FILE SIZES WITHOUT LOOSING FEATURES: slpsample.exe (updated 1-16-2000). Allows scaling of BMP and RGB SLAMP images with an option of preserving the peak or minimum values in the sampled areas. This is a must if your having problems getting the size right on graphs for website presentation. The output file format is always 24 bit format. Slpsample will accept 1,4,8 and 24 bit BMP formats. Example usage: Make a PowerPoint diagram and save as a GIF image. Use Paint or other image editor to open and save GIF image as a BMP file. Use slpsample.exe to convert to desired size and use minimum intensity preservation to maintain thin lines that would otherwise disappear.

CRACKER BARREL GAME: Windows version of the triangle board with the golf tees (trigame.exe) (updated 1-12-2000).

Generates Mandelbrot set. slpmand.exe

Generates a Mandelbrot set from Z[n] = Z[n-1]^p + C. (updated 3-23-00). Output BMP format. Example of p=3 below:


GIF ANIMATION. (Updated June 12, 1997) GIFCON.EXE software allows you to take a sequence of images and create a GIF movie from them. You find this and more for Windows and Windows 95 at: URL: http://www.mindworkshop.com/alchemy/alchemy.html

DOS SOFTWARE:


If you want to know what they are, just type the program name and a help listing will be made. If you have any trouble down loading, unzipping or using the programs, let us know by email. We use most of these programs often but you should consider them beta versions and your email will prompt us to correct any problems.


IMAGE SYNTHESIS:

Generates Noise Image. matnoise.zip

Generates a uniform, salt & pepper or Gaussian noise matrix(updated 2-24-97). Output matrix in MATRIX format. Example of salt and pepper below:


Generates 2-D Gaussian Surface Contour. matgpdf.zip

Generates a joint Gaussian contour. (updated 2-27-97). Output matrix in MATRIX format. Example of correlated joint pdf below:


Generates Mandelbrot set. matmand.zip

Generates a Mandelbrot set from Z[n] = Z[n-1]^p + C. (updated 3-7-97). Output matrix in MATRIX format. Example of p=3 below:


IMAGE FILTERING and PROCESSING:

Crop Matrix Image. matcrop.zip

Allows you to crop a small matrix from a large one or pad a small matrix to a larger size (updated 3-18-97). Output matrix in MATRIX format. Examples, left section of Mandelbrot cropped to smaller matrix and small image of Mandelbrot set cropped to larger matrix with grey background fill.


Scales Matrix Dimensions. matscale.zip

Allows you to change the size of a matrix. (updated 3-18-97). Output matrix in MATRIX format. Examples, decimated 128x128 Mandelbrot set to 32x32, then 32x32 matrix is enlarged, without interpolation, to a 128x128.


Sobel Edge Enhancement. matsobel.zip

Sobel edge enhancement. (updated 3-18-97). Output matrix in MATRIX format. Example, sobel edge enhance Mandelbrot set.


MATRIX OPERATIONS:

Upon request: Multiplication, conjugation, transposition, inversion, various elementwise operations, etc..

FORMAT CONVERSION:

Zipped MATRIX format, Example of read and write operations for MATRIX format in C source code(not available yet but would be upon request). matform.zip

MATRIX size. matsize.zip

Determines a MATRIX file dimensions and data type and displays the results in DOS. You may need this information if you are converting the file to postscript and need to scale the image dimensions properly (updated 2-27-97).


MATRIX file to FRG format. slmp2frg.zip

Conversion from MATRIX format to FRG format. Program will request an SLAMP path. SLAMP format is identical to MATRIX format. It stands for Structured Light Altitude Modulation Process which the matrix format was originally developed for (updated 5-30-97).


FRG file to GIF format. frg2gif.zip

Conversion from FRG format to GIF format. Program will request an FRG path and output a GIF formatted file. Presently limited to maximum of 64K element matrix (updated 2-27-97).


MATRIX file to Postscript Format. fmpsout.zip

Conversion from MATRIX format to Postscript(updated 2-27-97).


Postscript file to Encapsulated Postscript Format. pseps.zip

Conversion from Postscript to Encapsulated Postscript Format. This will only work if the Postscript file has be generated by fmpsout program. The EPS file may be inserted in MS WORD or WP documents but does not have viewing information, ie., you can not see it while your editting but it will print out. (updated 2-27-97).


IMAGE DISPLAY:

Displays MATRIX file. matview3.zip

Displays MATRIX format suitable for most video cards (updated 5-30-97). Displays matrix of MATRIX format. Let us know if there is a problem with this on your system, we may be able to enhance the driver to fix your problem.