2016-03-08 13:37:40 -0600 | received badge | ● Student (source) |
2015-07-02 13:56:19 -0600 | received badge | ● Scholar (source) |
2015-07-02 13:56:14 -0600 | commented answer | Calibrate a page The qrcode is here to identify the type of document. Indeed I can use it to calibrate, but I just though the QRCode was too small to have good calibration result.(but i didn't test it......) |
2015-07-01 13:59:10 -0600 | commented answer | Calibrate a page Thanks! I've tested your example which indeed return only 10 squarse instead of the ~1000 I got earlier. Now I'm trying to understand why it's working better, and how I can find the top right, bottom left and right corner between the 10 squares. If i did not suceed, I'm thinking of using template matching as suggested in one of your link. |
2015-07-01 13:58:26 -0600 | received badge | ● Supporter (source) |
2015-06-30 13:06:33 -0600 | received badge | ● Editor (source) |
2015-06-29 12:46:21 -0600 | asked a question | Calibrate a page Hello, I'm trying to find whenever checkboxes on a scanned sheet of paper are checked or not. Before analyzing the average color of the checkbox and compare it to the average color of blank area on the page, I need to find position of checkboxes. To do so, I need to "calibrate" my page (because the page can be slightly rotated, and because the scanner autocrop the sheet of paper, not everytime the same way) . I have drawn 3 black squares on the sheet of paper, that I have put near the top right corner, bottom left corner and bottom right corner of the page. I'm trying to find the position of this 3 squares to be able to find the position of checkboxes (I know their position in centimeter, relativly to the calibrating squares, and I know the distance in centimeter between the calibrating squares). I used the findsquares function from opencv square example. It works, but it finds multiples times the same square (It detect about 500 to 1000 time each square). So I need to filter the results from findsquares. I tried first to write some code to detect square which is most on the top and on the right and the same for the 2 other squares. But I realized after some trials, that it is not possible to define a"top right" corner when there is more than 3 squares (i got thousand of them) randomly disposed on a plane. Then, I tried to find which squares are really close of the other and delete them. But I got error on execution (list iterator not incrementable), as I must be out of range in some way. Below the code i use. The "squares" variable comes from findSquares(const Mat& image, vector<vector<point> >& squares) from opencv example. So now, I'm a little bit lost. I don't know which way is the better : Try to fix the "list iterator not incrementable" error, find another way to calibrate the page than 3 black squares, improve findsquares function... Do you have any suggestion? EDIT: As requested, the image : It's not the original image, as it makes 3.2Mo and 25048x3507 and I cannot upload such big image. I resized the original image using Lanczos filter in Irfanview. In my code, i take the orignal ... |