Description
-
Use image called MASK in file chars45.mat to study shape analysis using Hu’s moments for the characters:
A,B,C,D,E,F,G,H,I,K,L,M,N,O,R,S,T,U,V,Y
a,c,d,e,f,g,h,i,k,l,m,n,o,p,r,s,t,u,v,y
0,1,2,3,4,5,6,7,8,9
Use a character from the image as a model, (A1, (A2, (A3, (A4, (A5, (A6), for each charac-ter above. Develop the functions listed below and report performance in terms of overall and per character success.
function Mpq = CS4640_central_moment(pts,p,q)
-
CS4640_central_moment – compute a central moment
-
Mpq = sum sum (xˆp*yˆq)
% x y
-
On input:
-
pts (nx2 array): row and cols of points
-
p (int): exponent for x
-
q (int): exponent for y
-
On output:
-
Mpq (float): Mpq moment
-
Call:
-
M00 = CS4640_central_moments([1 1; 2 2; 3 3],0,0);
-
Author:
-
T. Henderson
1
-
UU
function Epq = CS4640_normal_moment(pts,p,q)
-
CS4640_normal_moment – compute a central normal moment
% Epq = <pq/M00ˆb where b = 1+(p+q)/2
-
On input:
-
pts (nx2 array): row and cols of points
-
p (int): exponent for x
-
q (int): exponent for y
-
On output:
-
Epq (float): Epq moment
-
Call:
-
E00 = CS4640_normal_moment([1 1; 2 2; 3 3],0,0);
-
Author:
-
T. Henderson
-
UU
%
function H = CS4640_Hu_moments(pts)
-
CS4640_Hu_moments – compute Hu’s 6 moments
-
On input:
-
pts (nx2 array): row and cols of points
-
On output:
-
H (6×1 vector): Hu moments
-
Call:
-
H = CS4640_Hu_moments([1 1; 2 2; 3 3]);
-
Author:
-
T. Henderson
-
UU
%
function H_models = CS4640_Hu_build(templates)
-
CS4640_Hu_models – produce Hu models for image templates
-
On input:
-
templates (n-element vector struct): template images
-
(k).im (MxN binary image): image template
-
On output:
-
H_models (nx7 array): Hu models
-
Call:
-
Hm = CS4640_Hu_models(templates);
2
-
Author:
-
T. Henderson
-
UU
%
function classes = CS4640_Hu_classify(im,H_models)
-
CS4640_Hu_classify – classify characters using Hu models
-
On input:
-
im (MxN binary image): input image
-
H_models (nx7 array): Hu models for n characters
-
On output:
-
classes (kx2 array): class and distance for each CC
-
Call:
-
Hm = CS4640_Hu_classify(im,Hm);
-
Author:
-
T. Henderson
-
UU
%
-
Implement an eigenchars classification approach similar to the eigenfaces method dis-cussed in the text. Develop a template database of 100 images (2 examples of each charac-ter). Build the models and then report performance on overall and per character success on MASK from chars45.mat. Develop the following functions.
function classes = CS4640_Hu_classify(im,H_models)
-
CS4640_Hu_classify – classify characters using Hu models
-
On input:
-
im (MxN binary image): input image
-
H_models (nx7 array): Hu models for n characters
-
On output:
-
classes (kx2 array): class and distance for each CC
-
Call:
-
Hm = CS4640_Hu_classify(im,Hm);
-
Author:
-
T. Henderson
-
UU
%
3
function [V,MM,PCA_models] = CS4640_PCA_model(templates)
-
CS4640_PCA_model – build PCA model from templates
-
On input:
-
templates (vector struct): n template images
-
(k).im (MxN binary array): template image for character k
-
On output:
-
V (M*nxM*n array): eigenvectors
-
MM (M*nx1 vector): mean vector
-
PCA_models (nxk array): weight values for first k eigenvectors
-
Call:
-
[V,MM,PCA_models] = CS4640_PCA_model(templates);
-
Author:
-
T. Henderson
-
UU
%
function c = CS4640_PCA_classify(im,V,MM,PCA_models)
-
CS4640_PCA_classify – classify image using PCA models
-
On input:
-
im (MxN binary array): input image
-
V (M*NxM*N array): eigenvectors
-
MM (M*Nx1 vector): mean vector
-
PCA_models (nxk array): weight values for first k eigenvectors
-
On output:
-
c (int): class
-
Call:
-
[V,MM,PCAm] = CS4640_PCA_model(templates);
-
Author:
-
T. Henderson
-
UU
%
4