An introduction to Artificial Intelligence. Finlay and Dix. 1st Edition.

threshold.p

download

Header

%  =================================================================
%  ==                                                             ==
%  ==          An Introduction to ARTIFICIAL INTELLIGENCE         ==
%  ==                  Janet Finlay and Alan Dix                  ==
%  ==                       UCL Press, 1996                       ==
%  ==                                                             ==
%  =================================================================
%  ==                                                             ==
%  ==           chapter 8, pages 166-167:  thresholding           ==
%  ==                                                             ==
%  ==          Prolog example, Alan Dix, September 1997           ==
%  ==                                                             ==
%  =================================================================

Code

%  The files 'image.p' and 'gimage.p' describe the image representations
%  used in this file and predicates to manipulate them..

%  Uses:
%      image_at/4 from file 'image.p'
%      gimage_to_image/2 from file 'gimage.p'
%  Please:
%      consult('../util/meta.p').   % used by 'gimage.p'
%      consult('../util/list.p').   % used by 'meta.p'
%      consult('image.p').
%      consult('gimage.p').

threshold_pixel( Pixel, Thresh, 0 ) :- Pixel < Thresh, !.
threshold_pixel( Pixel, Thresh, 1 ).

threshold_at( Input, Thresh, X, Y, Out_Pix ) :-
            image_at( Input, X, Y, In_Pix ),
            threshold_pixel( In_Pix, Thresh, Out_Pix ).

threshold_image( Input, Thresh, Wid, Ht, Output ) :-
            gimage_to_image( ( (X,Y,P), (Wid,Ht),
                               threshold_at(Input,Thresh,X, Y, P) ),
                             Output ).


Running this Code

%  RUNNING THIS CODE
%
%  The file 'eximages.p' contains example images from all the figures
%  in chapter 9.  In particular, it has the pixel image used in the
%  thresholding example in figure 8.2 on page 166.
%  Consult this file:
%        consult('eximages.p').
%  Then try the following to replicate this example:
%>        image('figure 8.2', Wid, Ht, Image),
%+        threshold_image( Image, 5, Wid, Ht, Output ).
%  Try it with different threshold values.


Query

Response