Book Image

Visual Media Processing Using MATLAB Beginner's Guide

By : George Siogkas
Book Image

Visual Media Processing Using MATLAB Beginner's Guide

By: George Siogkas

Overview of this book

Whether you want to enhance your holiday photographs or make a professional banner image for your website, you need a software tool that offers you quick and easy ways to accomplish it. All-in-one tools tend to be rare, and Matlab is one of the best available.This book is a practical guide full of step-by-step examples and exercises that will enable you to use Matlab as a powerful, complete, and versatile alternative to traditional image and video processing software.You will start off by learning the very basics of grayscale image manipulation in Matlab to master how to analyze 3-dimensional images and videos using the same tool. The methods you learn here are explained and expanded upon so that you gradually reach a more advanced level in Matlab image and video processing. You will be guided through the steps of opening, transforming, and saving images, later to be mixed with advanced masking techniques both in grayscale and in color. More advanced examples of artistic image processing are also provided, like creating panoramic photographs or HDR images. The second part of the book covers video processing techniques and guides you through the processes of creating time-lapse videos from still images, and acquiring, filtering, and saving videos in Matlab. You will learn how to use many useful functions and tools that transform Matlab from a scientific software to a powerful and complete solution for your everyday image and video processing needs.
Table of Contents (18 chapters)
Visual Media Processing Using MATLAB Beginner's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – writing a function for red eye reduction


In this example, we will use a photograph of me, to try and reduce the red eye effect. In order to be able to use this tool in other photographs as well, we should make it as generic as possible.

  1. First, we should write the following function in our editor (we'll call it RedEyeReduction.m):

    function output = RedEyeReduction(input, thresh) 
    
    % Function for red eye reduction in input image 
    % Inputs:
    % input  - Input image
    % thresh – Threshold value in channel a*
    % Output:   
    % output - Output image (after red-eye reduction)
    
    cform = makecform('srgb2lab'); % Make the transform structureimg_lab = applycform(input,cform); % Apply transform to L*a*b*
    
    eyes = roipoly(input);	% Select area of eyes
    mask = (img_lab(:,:,2) > thresh) & (eyes > 0); % Red pixels in eyes
    
    % Split the three color channels
    R=input(:,:,1);
    G=input(:,:,2);
    B=input(:,:,3);
    
    R(mask) = round((G(mask)+B(mask))/2); % Replace R value with (G+B)/2
    
    output = cat(3...