DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Python (http://www.daniweb.com/forums/forum114.html)
-   -   counting pixels in an image(ocr) (http://www.daniweb.com/forums/thread160591.html)

kiddo39 Dec 3rd, 2008 12:49 pm
counting pixels in an image(ocr)
 
I have a small image with a black background and red lines in it and I need to count the red pixels. I know I need PIL, but I'm not sure which method to use. Then once I have the counts I need to equate them to a character, so if the red lines in the image form a circle and have x amount of red pixels, its = '0', and if the image forms a straight line and is found to have x amount of pixels it's = 'l'.

import Image
#mypic.jpg is the circle
im=image.open("mypic.jpg")
im.getcolors(R)
# if statement here

Any suggestions?

Paul Thompson Dec 4th, 2008 5:08 am
Re: counting pixels in an image(ocr)
 
Could you test how many pixels are red? Because a circle will require many more pixels to draw then a line.
I know when getting colours i used something like:
import Image
im = image.open("myPic.jpg")
for pixel in im.getdata():
    #check if it is red

vegaseat Dec 4th, 2008 11:17 am
Re: counting pixels in an image(ocr)
 
Played around with it a little ...
# use PIL to count pixels in letters I and O
# image file needs to be a bitmap file to maintain
# red (255,0,0) and black (0,0,0) pixel colors correctly

from PIL import Image

# img_I.bmp --> 50x50 black bg + red I (times new roman, bold, 24)
img_I = Image.open("img_I.bmp").getdata()

# img_O.bmp --> 50x50 black bg + red O (times new roman, bold, 24)
img_O = Image.open("img_O.bmp").getdata()

# count red pixels of the I
# list(img_I) is a list of (r,g,b) color tuples for each pixel
# where (255,0,0) would be the red pixel
red_I = 0
for red in list(img_I):
    if red == (255,0,0):
        red_I += 1

print red_I  # 76

# count red pixels of the O
red_O = 0
for red in list(img_O):
    if red == (255,0,0):
        red_O += 1

print red_O  # 126


All times are GMT -4. The time now is 10:53 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC