# CS 4640 Assignment A7: Image Features solved

\$35.00

## Description

5/5 - (1 vote)

1. 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 character 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
%
2. Implement an eigenchars classification approach similar to the eigenfaces method discussed in the text. Develop a template database of 100 images (2 examples of each character). 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
%
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
%
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