Skip to content

Instantly share code, notes, and snippets.

@cflove
Last active December 17, 2015 11:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cflove/5600765 to your computer and use it in GitHub Desktop.
Save cflove/5600765 to your computer and use it in GitHub Desktop.
Face Detection with JJIL and ColdFusion Experiment Updated http://cflove.org/2013/05/face-detection-with-jjil-library-and-coldfusion-experiment.cfm
<cfset image = ImageRead(ExpandPath('images/2.jpg'))>
<cfset BufferedImage = ImageGetBufferedImage(image)>
<cfset minScale = 1>
<cfset maxScale = 50>
<cfset Gray8DetectHaarMultiScale = CreateObject('java', 'jjil.algorithm.Gray8DetectHaarMultiScale' )>
<cfset DetectHaar = Gray8DetectHaarMultiScale.init(
CreateObject('java', 'java.io.FileInputStream').init( ExpandPath('images/haar/HCSB.txt') ),
JavaCast('int',minScale),
JavaCast('int',maxScale) ) >
<cfset RgbImageJ2se = CreateObject('java', 'jjil.j2se.RgbImageJ2se' )>
<cfset BufferedImage = RgbImageJ2se.toRgbImage(BufferedImage)>
<cfset toGray = CreateObject('java', 'jjil.algorithm.RgbAvgGray' ).init()>
<cfset toGray.push(BufferedImage)>
<cfset results = DetectHaar.pushAndReturn(toGray.getFront())>
<cfset ImageSetDrawingColor(image,"red")>
<cfset ImageSetAntialiasing(image,"on")>
<cfset facelist = QueryNew('face,leftSide,top,width,height,bottom')>
<cfloop from="1" to="#ArrayLen(results)#" index="face">
<cfset QueryAddRow(facelist)>
<cfset QuerySetCell(facelist,'face',face )>
<cfset QuerySetCell(facelist,'leftSide',results[face].getLeft() )>
<cfset QuerySetCell(facelist,'top',results[face].getTop() )>
<cfset QuerySetCell(facelist,'width',results[face].getWidth() )>
<cfset QuerySetCell(facelist,'height',results[face].getHeight() )>
</cfloop>
<cfloop query="facelist">
<cfquery name="check" dbtype="query">
select face from facelist where face <> #face# and
leftSide < #leftSide# and (leftSide+width) > #leftSide# and
top < #top# and (top+height) > #top#
</cfquery>
<cfif not check.recordCount>
<cfset ImageDrawRect(image,leftSide,top,width,height,0)>
</cfif>
</cfloop>
<cfdump var="#facelist#">
<cfset ImageWrite(image, ExpandPath('images/test.JPG') )>
<img src="images/test.JPG" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment