Detecting skin in colour images, Computer Graphics

Assignment Help:

In this lab you will learn how to use chrominance1 to segment coloured images. Here you be detecting skin, however, you could use this method to detect other coloured regions in images.

Firstly you will build a model describing the likelihood that any pair of chrominance values belongs to a piece of skin. Secondly you will test images and identify likely skin regions.

Getting Started

1. Download the following files from the course web site

  • the image 'face.jpg'.
  • the incomplete file 'Lab2.m', and
  • the file 'RGB2Lab.m'

Save these in the directory you are using for this lab.

Deliverable:

To gain the marks for this lab you will need to show me your completed Lab2 function running during the lab. Complete the function Lab2 by writing the two sub-functions

make_chroma_model, and

find_chroma

The specifications of these functions can be found in the downloadable file Lab2.m

What to do

Firstly have a look at the Lab3 file. Run it and see what it does. First it defines some constants num_bins and gsize. Then it loads an image and converts it to double in the range [0,1], but leaves it in RGB format. It then crops a region defined by the user.

While you write and debugging this program it is convenient not to have to select a region each time you run the program. Comment out the lines that display the prompt to the user and interactively crop the image, we'll enable them again later once the code's working. For the meantime crop the image automatically like this:

sample_colour = im_RGB(130:150,90:138,:);

This takes rows 130 to 150, columns 90 to 138, and all 3 colour channels. Notice that the

':' is used to mean 'everything inbetween' when it's between two indexes, or 'everything' when it's on it's own.

1 Colour has 3 channels, eg RGB, HSV. Chrominance is a two channel derivative of a colour that is independent of intensity. See lecture on Colour theory.

2 Now let's start on the function make_chroma_model. Firstly we need to convert from RGB colour space to CIE Lab colour space using RGB2Lab.m,

[L,a_chroma,b_chroma] = RGB2Lab(sample_colour);

RGB2Lab returns real a,b chrominance values in the range [-120,120] . We want to use these as indexes to an accumulator array, so we need to convert them to integers in the range [0, num_bins], where num_bins is a constant defining the size of each dimension of our accumulator array. To do this we will write a very short sub-function.

Write a sub-function ab2ind that is passed 2 parameters ab_chroma and num_bins and returns an index ind. This will only take two lines. Firstly convert ab_chroma from the range [-120,120] to [0,1].

ab_01 = ((ab_chroma)+120)/240;

Secondly discretise this into an integer index ind in the range [1,num_bins].

ind = round(ab_01*(num_bins-1)) + 1;

round rounds to the nearest integer. Note the minus 1 and plus 1 that are necessary to firstly scale to the range [0, num_bins-1] then increase this to [1, num_bins].

Getting back to make_chroma_model, we can now call our new sub-function to convert our a,b chrominance values to indexes for the accumulator array, e.g. for

a_chroma

a_ind = ab2ind(a_chroma, num_bins);

Now we are ready to start building the skin chrominance model. Create an accumulator array, this will be a num_bins × num_bins matrix of zeroes, use the zeros function to do this, call this matrix accum_array. We will use this for counting the occurrences of different chroma pairs and it will form the basis of our skin chrominance model.

Now we need to count the number of occurrences of each chroma pair. To do this you will need to use for loops to consider every pixel in the image. Look at the a find and b find values of each pixel and increment the appropriate cell in the accumulator array.

Done that? Have a look at your result using imagesc as follows, figure;

imagesc(accum_array); axis image;

xlabel('a'); ylabel('b'); title('Points in ab space');

 


Related Discussions:- Detecting skin in colour images

Derive the single combined transformation matrix, A 2D geometric shape is r...

A 2D geometric shape is rotated about a point with coordinates (1,2)  by 90°  in a clockwise direction.  Then, the shape is scaled about the same point in the x-coordinate by 2 tim

Raster scan display device - types of refresh monitors, Raster Scan Display...

Raster Scan Display Device - types of refresh monitors Now day screen display is also based on Cathode ray Tube technology, except that in place of displaying the picture tra

Dda or digital differential analyzer algorithm, DDA or Digital Differential...

DDA or Digital Differential Analyzer Algorithm - Line generation algorithms From the above discussion we get that a Line drawing is accomplished through calculating intermedi

Explain what you understand by corporate style guide, Question 1: (a) ...

Question 1: (a) Explain the term ‘logo' with the use of an example. (b) Explain in detail what three basic questions you need to ask yourself before creating a logo. (c) You

Important points for windowing transformations, Important Points for Window...

Important Points for Windowing Transformations 1. Window explains what is to be viewed and viewpoint describes where it is to be displayed. 2. Frequently window and viewpoi

Convex shaped window and concave or non convex shaped window, Well you migh...

Well you might surprise to what a convex window? In common, on the basis of the shapes the windows are categorized into two classes: i) A Convex shaped windows: Windows of a s

Functioning of hardcopy devices and output primitives, Functioning of hardc...

Functioning of hardcopy devices and Output primitives 1.  Functioning of hardcopy devices-laser printers and dot matrix printers, plotters.  2.  Output primitives: Graphics

Polygon representation methods - space partitioning, Polygon representation...

Polygon representation methods - Space Partitioning Representations Space partitioning representations: this type of representation is used for explain the interior pr

Rotation - 2-d and 3-d transformations, Rotation - 2-D and 3-D transformati...

Rotation - 2-D and 3-D transformations Within 2-D rotation, an object is rotated via an angle θ along w.r.t. the origin. This angle is assumed to be +ive for anticlockwise rot

Orthographic and oblique projection - viewing transformation, Orthographic ...

Orthographic and Oblique Projection - Viewing Transformation Orthographic projection is the easiest form of parallel projection that is commonly utilized for engineering drawi

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd