class Captcha

Public Class Methods

new(file_location) click to toggle source
# File lib/vit_captcha.rb, line 7
def initialize(file_location)
  @img = ImageList.new(file_location).crop(20,3,87,22).threshold(100)
  @matrix = get_matrix(@img)
  @row = @matrix.size
  @col = @matrix[0].size
  @order = Hash.new()
end

Public Instance Methods

answer() click to toggle source
# File lib/vit_captcha.rb, line 53
def answer
  answer = ""
  @order.sort.each do |letter|
    answer += letter[1].to_s
  end
  answer.delete! '_'
end
check_match(letter ,mask, col, row) click to toggle source
# File lib/vit_captcha.rb, line 34
def check_match(letter ,mask, col, row)
  @matrix.each_with_index do |matrix_row, x_off|
    matrix_row.each_with_index do |matrix_ele, y_off|
      next if x_off+col>@row || y_off+row>@col
      flag = 0
      mask.each_with_index do |row, x|
        row.each_with_index do |element, y|
          if element == "1" && @matrix[x+x_off][y+y_off] != "1"
            flag = 1
            break
          end
        end
        break if flag == 1
      end
      @order[y_off]=letter if flag == 0
    end
  end
end
get_captcha() click to toggle source
# File lib/vit_captcha.rb, line 61
def get_captcha
  keys = { _0: [["0", "0", "0", "1", "1", "1", "1", "0", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "0", "0", "1", "1", "0"], ["1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "0", "0", "0", "1", "1", "0", "1", "1"], ["1", "1", "0", "0", "1", "1", "0", "0", "1", "1"], ["1", "1", "0", "1", "1", "0", "0", "0", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "0", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1"], ["0", "1", "1", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "0", "1", "1", "1", "1", "0", "0", "0"] ], _1: [ ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"] ], _2: [ ["0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "0", "0", "0", "1", "1", "1", "1", "0"], ["1", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "1", "1", "1", "1", "0", "0", "0", "0"], ["0", "1", "1", "1", "1", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"] ], _3: [ ["0", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"] ], _4: [ ["0", "0", "0", "0", "0", "0", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "1", "1", "0", "1", "1", "1", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "0", "0", "0", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0"] ], _5: [ ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"] ], _6: [ ["0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "0", "0", "0"] ], _7: [ ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "0", "1", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "0", "0", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "0", "0", "0", "0"] ], _8: [ ["0", "0", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "0", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"] ], _9: [ ["0", "0", "0", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "1", "1", "1", "0", "1", "1", "1"], ["0", "0", "1", "1", "1", "1", "1", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "0", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0"] ], A: [ ["0", "0", "0", "0", "1", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "1", "0", "0", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1"] ], B: [ ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"] ], C: [ ["0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "1", "1", "1", "1", "0", "0", "0", "0", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "1"], ["0", "1", "1", "1", "1", "0", "0", "0", "0", "1", "1"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "0"] ], D: [ ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0"] ], E: [ ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"] ], F: [ ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"] ], G: [ ["0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "1", "0", "0"] ], H: [ ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"] ], I: [ ["1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0"], ["1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1"] ], J: [ ["0", "0", "1", "1", "1", "1", "1", "1"], ["0", "0", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1"], ["0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "0", "0"] ], K: [ ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "0", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "0", "1", "1", "1", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "0", "0", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"] ], L: [ ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1"] ], M: [ ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "0", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "1", "1", "0", "1", "1", "0", "1", "1", "1"], ["1", "1", "1", "0", "1", "1", "1", "1", "1", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "1", "1", "1", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "1", "1", "1", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"] ], N: [ ["1", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1"], ["1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"] ], O: [ ["0", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0", "0", "0"] ], P: [ ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0"] ], Q: [ ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "1", "1"], ["1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1"], ["1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1"], ["1", "1", "0", "0", "0", "0", "0", "1", "0", "0", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "0", "1", "1"], ["0", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "1", "0"] ], R: [ ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["1", "1", "1", "0", "0", "1", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"] ], S: [ ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "0", "0", "0", "0", "1", "1", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "0"], ["1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0"] ], T: [ ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"] ], U: [ ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "0", "0", "0"] ], V: [ ["1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "1", "0", "0", "0", "0"] ], W: [ ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "1", "1", "0", "1", "1", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "0", "1", "1", "0", "1", "1", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "1", "1", "0", "0", "0", "1", "1", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "0", "1", "1", "0", "0", "0", "1", "1", "0", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "0", "0", "0", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1", "1", "0", "0"] ], X: [ ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["0", "1", "1", "1", "1", "0", "0", "1", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0"], ["0", "1", "1", "1", "1", "0", "0", "1", "1", "1", "1", "0"], ["1", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1"] ], Y: [ ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["1", "1", "1", "0", "0", "0", "0", "0", "1", "1", "1"], ["0", "1", "1", "1", "0", "0", "0", "1", "1", "1", "0"], ["0", "1", "1", "1", "1", "0", "1", "1", "1", "1", "0"], ["0", "0", "1", "1", "1", "0", "1", "1", "1", "0", "0"], ["0", "0", "1", "1", "1", "1", "1", "1", "1", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"] ], Z: [ ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "0", "1", "1", "1", "1"], ["0", "0", "0", "0", "0", "1", "1", "1", "1", "0"], ["0", "0", "0", "0", "0", "1", "1", "1", "0", "0"], ["0", "0", "0", "0", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "1", "0", "0", "0"], ["0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["0", "0", "1", "1", "1", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "1", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"] ] }
  count = 0
  keys.each_pair do |letter, mask|

    break if count>=6
    mask_row = mask.size
    mask_col = mask[0].size
    check_match(letter, mask, mask_col, mask_row)
    count = @order.size

  end
  return answer
end
get_matrix(img) click to toggle source
# File lib/vit_captcha.rb, line 15
def get_matrix(img)
  matrix = Array.new
  temp_arr = Array.new
  col_count = 0
  img.each_pixel do |pixel, col, row|
    val = "0"
    val = "1" if pixel.green == 0
    if col_count > col
      matrix.push(temp_arr)
      col_count = 0
      temp_arr = Array.new
    end
    temp_arr.push(val)
    col_count+=1
  end

  return matrix
end