How to get skin tone color pixel in iPhone? -


in application m using following way red pixel in image

// //  pixelsaccessappdelegate.h //  pixelsaccess // //  created fortune1 on 14/04/10. //  copyright __mycompanyname__ 2010. rights reserved. //  #import <uikit/uikit.h> @class clspixelaccess; nsuinteger numberofredpixels; nsuinteger numberofredpixels1; nsuinteger numberofredpixels2; nsuinteger numberofredpixels3; nsuinteger numberofredpixels4; nsuinteger numberofredpixels5; nsuinteger numberofredpixels6; nsuinteger numberofredpixels7; nsuinteger numberofredpixels8; nsuinteger numberofredpixels9; nsuinteger numberofredpixels10; nsuinteger numberofredpixels11; nsuinteger numberofredpixels12; nsuinteger numberofredpixels13; nsuinteger numberofredpixels14; nsuinteger numberofredpixels15; nsuinteger numberofredpixels16; nsuinteger numberofredpixels17; nsuinteger numberofredpixels18; nsuinteger numberofredpixels19; nsuinteger numberofredpixels20; nsuinteger numberofredpixels21; nsuinteger numberofredpixels22; nsuinteger numberofredpixels23; nsuinteger numberofredpixels24; nsuinteger numberofredpixels25; nsuinteger numberofredpixels26; nsuinteger numberofredpixels27; nsuinteger numberofredpixels28; nsuinteger numberofredpixels29; nsuinteger numberofredpixels30; nsuinteger numberofredpixels31;  @interface pixelsaccessappdelegate : nsobject <uiapplicationdelegate> {     uiwindow *window;     clspixelaccess *obj;  }  @property (nonatomic, retain) iboutlet uiwindow *window; -(ibaction)processimage:(id)sender;  @end  //////////////////// // //  pixelsaccessappdelegate.m //  pixelsaccess // //  created fortune1 on 14/04/10. //  copyright __mycompanyname__ 2010. rights reserved. //  #import "pixelsaccessappdelegate.h" #import "clspixelaccess.h"  @implementation pixelsaccessappdelegate  @synthesize window;  - (ibaction)processimage:(id)sender {       nsuinteger retval;     obj = [[clspixelaccess alloc] init];      nsinteger imagesend =[obj processimage1:[uiimage imagenamed:@"s.jpg"]];     nsinteger iamgecall =[obj getpixeldata:retval];     nsuinteger *numberofredpixels = retval;      //lblpixelcount.text = [nsstring stringwithformat: @"there %d red pixels in image", numberofredpixels];  }  - (void)applicationdidfinishlaunching:(uiapplication *)application {          // override point customization after application launch     [window makekeyandvisible]; }   - (void)dealloc {     [window release];     [super dealloc]; }   @end ///////////////  // //  clspixelsaccess.h //  pixelsaccess // //  created fortune1 on 14/04/10. //  copyright 2010 __mycompanyname__. rights reserved. //  #import <foundation/foundation.h>   @interface clspixelaccess : nsobject {  } -(nsinteger) processimage1: (uiimage*) image; -(nsinteger)getpixeldata:(nsuinteger *)pixelcount; @end /////////   // //  clspixelsaccess.m //  pixelsaccess // //  created fortune1 on 14/04/10. //  copyright 2010 __mycompanyname__. rights reserved. //  #import "clspixelaccess.h" #import "pixelsaccessappdelegate.h"  @implementation clspixelaccess  struct pixel {     //unsigned char r, g, b,a;     byte r, g, b, a;     int count; };   -(nsinteger)getpixeldata:(nsuinteger *)pixelcount {     *pixelcount =numberofredpixels;     return 1;  } // process image , return number of pure red pixels in it.  - (nsinteger) processimage1: (uiimage*) image {      // allocate buffer big enough hold pixels      struct pixel* pixels = (struct pixel*) calloc(1, image.size.width * image.size.height * sizeof(struct pixel));     if (pixels != nil)     {         // create new bitmap         cgcontextref context = cgbitmapcontextcreate(                                                      (void*) pixels,                                                      image.size.width,                                                      image.size.height,                                                      8,                                                      image.size.width * 4,                                                      cgimagegetcolorspace(image.cgimage),                                                      kcgimagealphapremultipliedlast                                                      );         //nslog(@"1=%d, 2=%d, 3=%d", cgimagegetbitspercomponent(image), cgimagegetbitsperpixel(image),cgimagegetbytesperrow(image));         if (context != null)         {             // draw image in bitmap             cgcontextdrawimage(context, cgrectmake(0.0f, 0.0f, image.size.width, image.size.height), image.cgimage);             nsuinteger numberofpixels = image.size.width * image.size.height;             nsmutablearray *numberofpixelsarray = [[[nsmutablearray alloc] initwithcapacity:numberofpixelsarray] autorelease];             nslog( @"pixel data %d", numberofpixelsarray);              /*                nsmatrix      *newmatrix = [[nsmatrix alloc]               initwithframe:nsmakerect(138.0f, 85.0f, 0.0f, 0.0f)              mode:nsradiomodematrix              prototype:prototypebuttoncell               numberofrows:                numberofcolumns:];              */              while (numberofpixels > 0)             {                 if (pixels->r > 0 && pixels->r <= 7)                 {                     numberofredpixels++;                 }                 nslog( @"red pixel data %d",numberofredpixels);                  if (pixels->r >= 8 && pixels->r <= 15)                 {                     numberofredpixels1++;                 }                  nslog( @"red pixel data1 %d",numberofredpixels1);                  if (pixels->r >= 16 && pixels->r <=23 )                 {                     numberofredpixels2++;                 }                 nslog( @"red pixel data2 %d",numberofredpixels2);                  if (pixels->r >= 24 && pixels->r <=31 )                 {                     numberofredpixels3++;                 }                 nslog( @"red pixel data3 %d",numberofredpixels3);                  if (pixels->r >= 32 && pixels->r <= 39)                 {                     numberofredpixels4++;                 }                 nslog( @"red pixel data4 %d",numberofredpixels4);                  if (pixels->r >= 40 && pixels->r <= 47)                 {                     numberofredpixels5++;                 }                 nslog( @"red pixel data5 %d",numberofredpixels5);                 if (pixels->r >= 48 && pixels->r <= 55)                 {                     numberofredpixels6++;                 }                 nslog( @"red pixel data6 %d",numberofredpixels6);                  if(pixels->r >= 56 && pixels->r <= 63)                 {                     numberofredpixels7++;                 }                 nslog( @"red pixel data7 %d",numberofredpixels7);                  if (pixels->r >= 64 && pixels->r <= 71)                 {                     numberofredpixels8++;                 }                 nslog( @"red pixel data8 %d",numberofredpixels8);                  if (pixels->r >=  72 && pixels->r <= 79)                 {                     numberofredpixels9++;                 }                 nslog( @"red pixel data9 %d",numberofredpixels9);                  if (pixels->r >= 80 && pixels->r <= 87)                 {                     numberofredpixels10++;                 }                 nslog( @"red pixel data10 %d",numberofredpixels10);                  if (pixels->r >= 88 && pixels->r <= 95)                 {                     numberofredpixels11++;                 }                 nslog( @"red pixel data11 %d",numberofredpixels11);                  if (pixels->r >= 96 && pixels->r <= 103)                 {                     numberofredpixels12++;                 }                 nslog( @"red pixel data12 %d",numberofredpixels12);                  if (pixels->r >= 104  && pixels->r <= 111)                 {                     numberofredpixels13++;                 }                 nslog( @"red pixel data13 %d",numberofredpixels13);                  if (pixels->r >= 112 && pixels->r <= 119)                 {                     numberofredpixels14++;                 }                 nslog( @"red pixel data14 %d",numberofredpixels14);                  if (pixels->r >= 120 && pixels->r <= 127)                 {                     numberofredpixels15++;                 }                 nslog( @"red pixel data15 %d",numberofredpixels15);                 if (pixels->r > 128 && pixels->r <= 135)                 {                     numberofredpixels16++;                 }                 nslog( @"red pixel data16 %d",numberofredpixels16);                  if (pixels->r >= 136 && pixels->r <= 143)                 {                     numberofredpixels17++;                 }                  nslog( @"red pixel data17 %d",numberofredpixels17);                  if (pixels->r >= 144 && pixels->r <=151)                 {                     numberofredpixels18++;                 }                 nslog( @"red pixel data18 %d",numberofredpixels18);                  if (pixels->r >= 152 && pixels->r <=159 )                 {                     numberofredpixels19++;                 }                 nslog( @"red pixel data19 %d",numberofredpixels19);                  if (pixels->r >= 160 && pixels->r <= 167)                 {                     numberofredpixels20++;                 }                 nslog( @"red pixel data20 %d",numberofredpixels20);                  if (pixels->r >= 168 && pixels->r <= 175)                 {                     numberofredpixels21++;                 }                 nslog( @"red pixel data21 %d",numberofredpixels21);                 if (pixels->r >= 176 && pixels->r <= 199)                 {                     numberofredpixels22++;                 }                 nslog( @"red pixel data22 %d",numberofredpixels22);                  if(pixels->r >= 184 && pixels->r <= 191)                 {                     numberofredpixels23++;                 }                 nslog( @"red pixel data23 %d",numberofredpixels23);                  if (pixels->r >= 192 && pixels->r <= 199)                 {                     numberofredpixels24++;                 }                 nslog( @"red pixel data24 %d",numberofredpixels24);                  if (pixels->r >= 200 && pixels->r <= 207)                 {                     numberofredpixels25++;                 }                 nslog( @"red pixel data25 %d",numberofredpixels25);                  if (pixels->r >= 208 && pixels->r <= 215)                 {                     numberofredpixels26++;                 }                 nslog( @"red pixel data26 %d",numberofredpixels26);                  if (pixels->r >= 216 && pixels->r <= 223)                 {                     numberofredpixels27++;                 }                 nslog( @"red pixel data27 %d",numberofredpixels27);                  if (pixels->r >= 224 && pixels->r <= 231)                 {                     numberofredpixels28++;                 }                 nslog( @"red pixel data28 %d",numberofredpixels28);                  if (pixels->r >= 232  && pixels->r <= 239)                 {                     numberofredpixels29++;                 }                 nslog( @"red pixel data29 %d",numberofredpixels29);                  if (pixels->r >= 240 && pixels->r <= 247)                 {                     numberofredpixels30++;                 }                 nslog( @"red pixel data30 %d",numberofredpixels30);                  if (pixels->r >= 248)                 {                     numberofredpixels31++;                 }                 nslog( @"red pixel data31 %d",numberofredpixels31);                 pixels++;                  numberofpixels--;             }              cgcontextrelease(context);         }          free(pixels);     }      return 1; }             @end 

my problem want skin tone pixel how possible

please me out.

thanks in advance

all code doing determining number of pixels have red components within specific ranges. if want skin tone pixels, remove comparisons 1 , change

if (pixels->r >= 192 && pixels->r <= 199) 

to

if ( (pixels->r >= ? && pixels->r <= ?) && (pixels->g >= ? && pixels->g <= ?) && (pixels->b >= ? && pixels->b <= ?) ) 

where question marks placeholders actual value ranges each of 3 color components define skin tone in application.


Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -