How to get skin tone color pixel in iPhone?

Posted by aman-gupta on Stack Overflow See other posts from Stack Overflow or by aman-gupta
Published on 2010-04-27T10:22:13Z Indexed on 2010/04/27 10:23 UTC
Read the original article Hit count: 654

Filed under:

Hi In my application I m using following way to get red pixel in a image // // PixelsAccessAppDelegate.h // PixelsAccess // // Created by Fortune1 on 14/04/10. // Copyright MyCompanyName 2010. All rights reserved. //

import

@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 { UIWindow *window; clsPixelAccess *obj;

}

@property (nonatomic, retain) IBOutlet UIWindow *window; -(IBAction)processImage:(id)sender;

@end

//////////////////// // // PixelsAccessAppDelegate.m // PixelsAccess // // Created by Fortune1 on 14/04/10. // Copyright MyCompanyName 2010. All 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 are %d red pixels in the image", numberOfRedPixels];

}

  • (void)applicationDidFinishLaunching:(UIApplication *)application {

    // Override point for customization after application launch [window makeKeyAndVisible]; }

  • (void)dealloc { [window release]; [super dealloc]; }

@end ///////////////

// // clsPixelsAccess.h // PixelsAccess // // Created by Fortune1 on 14/04/10. // Copyright 2010 MyCompanyName. All rights reserved. //

import

@interface clsPixelAccess : NSObject {

} -(NSInteger) processImage1: (UIImage*) image; -(NSInteger)getPixelData:(NSUInteger *)pixelCount; @end /////////

// // clsPixelsAccess.m // PixelsAccess // // Created by Fortune1 on 14/04/10. // Copyright 2010 MyCompanyName. All 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 the image and return the number of pure red pixels in it.

  • (NSInteger) processImage1: (UIImage*) image {

    // Allocate a buffer big enough to hold all the pixels

    struct pixel* pixels = (struct pixel*) calloc(1, image.size.width * image.size.height * sizeof(struct pixel)); if (pixels != nil) { // Create a 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 the image in the 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 is I want skin Tone Pixel how it could be possible

Please help me out.

Thanks in Advance

© Stack Overflow or respective owner

Related posts about iphone