๐Ÿ“Œ2์›” 1์ฃผ์ฐจ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ƒํ™ฉ - minho0315/OpenCV GitHub Wiki

2021-02-06

๐Ÿ”ง id ์ถ”๊ฐ€

1. OMR ์ด๋ฏธ์ง€์— (classNumber) ์ถ”๊ฐ€

๊ฐ OMR์นด๋“œ ๋งˆ๋‹ค id ๊ฐ’์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด classNumber๋ฅผ ์ถ”๊ฐ€

omr_test_1

1


2. classNumber ์ธ์‹

์ธ์‹ํ•œ classNumber ๊ฐ’ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ํ‘œ์‹œ -> id ๊ฐ’ ์ง€์ •

2 3 4 5 6


3. ์ถ”๊ฐ€๊ธฐ๋Šฅ ๊ตฌํ˜„

์ดํ•ฉ, ํ‰๊ท , ๋“ฑ์ˆ˜

7


2021-02-03

imread(ํŒŒ์ผ๋ช…); ์ƒํ™ฉ์— ๋งž๊ฒŒ ํŒŒ์ผ๋ช… ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ

...
        int i = 1; // ๋ช‡๋ฒˆ์งธ ํ•™์ƒ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜

void OMR()
{
        ...
        string filename = "omr_test_";
        filename.append(to_string(i));
        filename.append(".png");

        image = imread(filename, IMREAD_COLOR);
        // image = imread("omr_test_(?).png");
        ...

        i++;
}


int main()
{
    int n; // ํ•™์ƒ์˜ ์ˆ˜ (OMR ์นด๋“œ ์ˆ˜)
    cout << "ํ•™์ƒ์˜ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” : ";
    cin >> n;

    for (int i = 0; i < n; i++) {
        OMR();
    }
    ...
}

2021-02-01

ํ”„๋กœ์ ํŠธ ์ œ๋ชฉ

OpenCV๋ฅผ ํ™œ์šฉํ•œ OMR์นด๋“œ ์ธ์‹

ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ ๋ฐ ๋ฐฐ๊ฒฝ

QR์ฝ”๋“œ ์ธ์‹ ํ”„๋กœ๊ทธ๋žจ์„ ์‘์šฉํ•œ ํ”„๋กœ์ ํŠธ๋กœ, ํ˜„์žฌ ๊ฐ๊ด€์‹ ๋‹ต์•ˆ ์ฑ„์ ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” OMR ์ฑ„์  ์‹œ์Šคํ…œ์„
opencv๋กœ ์ฝ”๋”ฉ, ํ”„๋กœ๊ทธ๋žจํ™” ํ•˜๊ณ  ์ฑ„์  ๊ธฐ๋Šฅ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ถ”๊ฐ€๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์žก์•˜๋‹ค.

๋ชฉํ‘œ

OMR์„ ์ •ํ™•ํ•˜๊ฒŒ ์ธ์‹ (์ด๋ฏธ์ง€๋ฅผ ๋ณด๊ณ  ์ธ์‹)
์ฑ„์  ๊ธฐ๋Šฅ
ํ‰๊ท , ๊ฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ •๋‹ต๋ฅ , ์„์ฐจ, ํ•™์  ๋“ฑ๋“ฑ ์ถ”๊ฐ€๊ธฐ๋Šฅ ์ œ๊ณต

์‚ฌ์šฉ์–ธ์–ด

C++

์ฐธ์กฐ

https://www.pyimagesearch.com/2016/10/03/bubble-sheet-multiple-choice-scanner-and-test-grader-using-omr-python-and-opencv/

โš ๏ธ **GitHub.com Fallback** โš ๏ธ