summaryrefslogtreecommitdiffstats
path: root/captcha/captcha.py
diff options
context:
space:
mode:
Diffstat (limited to 'captcha/captcha.py')
-rw-r--r--captcha/captcha.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/captcha/captcha.py b/captcha/captcha.py
index 539e51932..48816940d 100644
--- a/captcha/captcha.py
+++ b/captcha/captcha.py
@@ -72,6 +72,7 @@ class OCR(object):
self.pixels = self.image.load()
def eval_black_white(self, limit):
+ self.pixels = self.image.load()
w, h = self.image.size
for x in xrange(w):
for y in xrange(h):
@@ -115,7 +116,7 @@ class OCR(object):
self.pixels = pixels
- def derotate_by_avergage(self):
+ def derotate_by_average(self):
"""rotate by checking each angle and guess most suitable"""
w, h = self.image.size
@@ -189,7 +190,42 @@ class OCR(object):
self.pixels = pixels
+ def split_captcha_letters(self):
+ captcha = self.image
+ started = False
+ letters = []
+ width, height = captcha.size
+ bottomY, topY = 0, height
+ pixels = captcha.load()
+
+ for x in xrange(width):
+ black_pixel_in_col = False
+ for y in xrange(height):
+ if pixels[x, y] != 255:
+ if started == False:
+ started = True
+ firstX = x
+ lastX = x
+
+ if y > bottomY: bottomY = y
+ if y < topY: topY = y
+ if x > lastX: lastX = x
+
+ black_pixel_in_col = True
+
+ if black_pixel_in_col == False and started == True:
+ rect = (firstX, topY, lastX, bottomY)
+ new_captcha = captcha.crop(rect)
+
+ letters.append(new_captcha)
+
+ started = False
+ bottomY, topY = 0, height
+
+ return letters
+
+
if __name__ == '__main__':
ocr = OCR()
ocr.load_image("B.jpg")