giuseb / mork

Optical mark recognition of multiple-choice response sheets
MIT License
28 stars 9 forks source link

Area to bubble in student ID #1

Open grasshoppermouse opened 9 years ago

grasshoppermouse commented 9 years ago

What do you think it would take to add a 10x8 block of cells to the form so that students could bubble in their 8 digit ID's?

giuseb commented 9 years ago

Could you provide a jpeg/pdf sample form of what you have in mind? What you suggest sounds like a reasonable thing to do, in principle.

Thanks! Giuseppe

grasshoppermouse commented 9 years ago

Giuseppe,

Here is the form I’m using now. The block for the student ID number is in the upper right hand corner.

Ed.

On Feb 20, 2015, at 9:31 AM, Giuseppe notifications@github.com wrote:

Could you provide a jpeg/pdf sample form of what you have in mind? What you suggest sounds like a reasonable thing to do, in principle.

Thanks! Giuseppe

— Reply to thisemail directly or view it on GitHub.

giuseb commented 9 years ago

Sorry, I must be looking at the wrong place, is there an attachment somewhere?

--G

grasshoppermouse commented 9 years ago

Sorry, here it is.

anth 468 fall 2013 scantron

perspectivezoom commented 9 years ago

To add on to this, I would like to, in the layout.yml, generalize the regions, so that it would be possible to add arbitrary groups of multiple choices / barcodes, such that the layout.yml would be defined as below. If you think this is a good idea, I have some time in the next week or so to work on a PR .

page_size:                # all measurements in mm
  width:          210     # width of the paper sheet
  height:         297     # height of the paper sheet
reg_marks:         
  margin:          10     # distance from each page border to registration mark center
  radius:           2.5   # registration mark radius
  search:          12     # initial size of the registration mark search area (*)
  offset:           2     # distance between the search area and each page border (*)

regions:           
  name:                   # ‘name’ is just a label; you can add arbitrary header elements
    top:            5     # margin relative to registration frame top side
    left:           7.5   # margin relative to registration frame left side
    width:         170    # text will be fitted to this width
    size:           14    # font size
    type:           unprocessed_text    # populated by content[:regions][:name], not processed during OMR
  title:
    top:            15
    left:           7.5
    width:         180
    size:           12
    type:           unprocessed_text    # populated by content[:regions][:title], not processed during OMR
  code:
    top:             5
    left:          165
    width:          20
    size:           14
    type:           unprocessed_text    # populated by content[:regions][:code], not processed during OMR
  signature:
    top:            30
    left:            7.5
    width:         120
    height:         15
    size:            7
    type:           unprocessed_text    # populated by content[:regions][:signature], not processed during OMR
    box:          true    # header element will be enclosed in a box
  answers:
    top:              55.5  # response area margin, relative to reg frame
    left:             10.5  # response area margin, relative to reg frame
    rows:             30    # number of items per column
    columns:           4    # number of columns
    column_width:     44    # 
    x_spacing:         7    # horizontal distance between ajacent cell centers
    y_spacing:         7    # vertical distance between ajacent cell centers
    cell_width:        6    # width of each choice and calibration cell
    cell_height:       5    # height of each choice and calibration cell
    max_cells:         5    # No longer needed, as choices are defined below
    font_size:         9    # size of both the item number and choice cell letter
    number_width:      8    # 
    number_margin:     2    # margin between
    type:           multiple_choice    # identified during OMR via the choice_cell_area strategy, and value available via Mork::SheetOMR.new.regions.answers[question_index].marked?(answer_index)
    choices:     [A, B, C, D, E]    # the values within each circle

  student_id:
    top:              20  # response area margin, relative to reg frame
    left:             10.5  # response area margin, relative to reg frame
    rows:             8    # number of items per column
    columns:           1    # number of columns
    column_width:     44    # 
    x_spacing:         7    # horizontal distance between ajacent cell centers
    y_spacing:         7    # vertical distance between ajacent cell centers
    cell_width:        6    # width of each choice and calibration cell
    cell_height:       5    # height of each choice and calibration cell
    max_cells:         5    # No longer needed, as choices are defined below
    font_size:         9    # size of both the item number and choice cell letter
    number_width:      8    # 
    number_margin:     2    # margin between
    type:           multiple_choice    # identified during OMR via the choice_cell_area strategy, and value available via Mork::SheetOMR.new.regions.student_id[question_index].marked?(answer_index)
    choices:     [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -]    # the values within each circle

  test_id:
    bits:             40    # the maximum sheet identifier is 2 to the power or bits
    left:             15    # distance between registration frame side and the first barcode bit
    width:             3    # width of each barcode bit
    height:            2.5  # height of each barcode bit from the registration frame bottom side
    spacing:           4    # horizontal distance between adjacent barcode bit centers
    type:           barcode    # populated by content[:regions][:test_id], identified during OMR via the barcode_bit_area strategy, and value available via Mork::SheetOMR.new.regions.test_id.value
korusdipl commented 7 years ago

Any improvement on this issue? or is it already available to make such answer sheet as the above image?