๋ค์์ ์ง์ฌ๊ฐํ์ ๊ทธ๋ฆด ์ ์๋ ํจ์์ ๋ํ ์ ์์ ํ๋ผ๋ฏธํฐ์ ์๋ฏธ์ ๋ํด์ ์์๋ณด์. ์ฒซ ๋ฒ์งธ img๋ ์ ๋ ฅ ์ด๋ฏธ์ง๊ฐ ๋ ๊ฒ์ด๋ค. ํด๋น ์ด๋ฏธ์ง์ ์ด์ Rect๋ฅผ ๊ทธ๋ฆฌ๊ฒ ๋ ๊ฒ์ด๋ผ๋ ์๋ฏธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ Point๊ฐ 2๋ฒ ํ๋ผ๋ฏธํฐ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค. ์ด๋๋ ๋นจ๊ฐ์ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด Left-Top ๊ณผ Right-Bottom์ ๋ํ ์ ์ ์ขํ๊ฐ ์ฃผ์ด์ง ๊ฒ์ด๋ค. ์ธ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ์ง์ฌ๊ฐํ์ ๋ฐ๊ธฐ ๋๋ ์์์ ๊ฐ์ ๋ฃ๊ฒ ๋๋ค. ๋ค ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ Thinkness์ ๋ํ ๊ฒ์ผ๋ก ์ง์ฌ๊ฐํ์ ํ ๋๋ฆฌ์ ๋๊ป๋ฅผ ์ง์ ํ ์ ์๋ค. ๋ค์ฏ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ LineType์ ์ง์ ํ ์ ์๋ค. 4 ๋๋ 8๋ก ์ง์ ํ ์ ์๋๋ฐ ์ด ์๋ฏธ๋ ๋ค์์ ๋ ์์ธํ ์์๋ณด๋ ๊ฒ์ผ๋ก ํ์. ๋ง์ง๋ง ์ฌ์ฏ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ 0์ผ๋ก ์ง์ ์ ํด์ผ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ง์ฌ๊ฐํ์ ์ป์ ์ ์์ ๊ฒ์ด๋ค.
์ฒซ ๋ฒ์งธ ํจ์์ ๋ค๋ฅด๊ฒ 2๊ฐ์ Point๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ฃผ๋ ๊ฒ์ด ์๋๋ผ Rect๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ง์ ๋ฃ์ ์ ์๋ค. Rect ํจ์์ ๊ฒฝ์ฐ Left-Top์ x, y ์ขํ๋ฅผ ๋ฃ๊ณ Width์ Height์ ๊ฐ์ ๋ฃ์ด์ ํด๋น ์ง์ฌ๊ฐํ์ ๋ํ ์ขํ์ ํฌ๊ธฐ ์ ๋ณด๋ฅผ ์ค ์ ์๋ค. Point๋ฅผ ์ ํํ ์ฃผ๊ธฐ ํ๋ ๊ฒฝ์ฐ Rect ํจ์๋ฅผ ํตํด์ ๋๋ต์ ์ผ๋ก ๋จผ์ ํฌ๊ธฐ๋ฅผ ์ ํ๊ณ rectangle ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ์ง์ด๋ฃ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ํธํ๋ค.
์ ์ฌ์ง์ฒ๋ผ Rect ํจ์๋ฅผ ์ฌ์ฉํด์ ๋จผ์ ์ง์ฌ๊ฐํ์ ์ ๋ณด๋ฅผ Rect์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ๋ด์ ๋ค rectangle์ ๊ทธ๋ฆฌ๋ ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ์ง์ด๋ฃ๊ฒ ๋๋ฉด ๊ฒฐ๊ณผ ์ฌ์ง์ด ๋ค์์ฒ๋ผ ๋์ค๊ฒ ๋๋ค.
์ฒซ ๋ฒ์งธ๋ก ์ ์ ๊ทธ๋ฆฌ๋ ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ดํด๋ณด์. ์ฒซ ๋ฒ์งธ๋ ์ ์ ๊ทธ๋ฆฌ๊ฒ ๋๋ Input Image๊ฐ ๋ค์ด๊ฐ๋ค. 2๋ฒ์งธ, 3๋ฒ์งธ๋ ๋์ผํ๊ฒ ์ง์ฌ๊ฐํ์ Left-Top๊ณผ Right-bottom ์ ์ขํ๊ฐ ๋ค์ด๊ฐ๋ค. 4๋ฒ์งธ๋ ์ง์ ์ ์ ๋๋ ๋ฐ๊ธฐ ์ ๋ณด๋ฅผ ๋ฃ๊ฒ ๋๊ณ 5 ๋ฒ์งธ๋ ์ ์ ๋๊ป๋ฅผ ์ง์ ํ ์ ์๋ค. 6 ๋ฒ์งธ๋ lineType์ ๋ฃ๊ฒ ๋๋๋ฐ 4 ๋๋ 8๋ก ๋ฃ๊ฒ ๋๋ค. 4 connected์ ๊ฒฝ์ฐ ๋๊ฐ์ ์ด ์๋ ์ํ์ข์ฐ์ ๋ฐฉํฅ์ผ๋ก๋ง neighbor๋ก ์ธ์ํ๊ฒ ๋๋ ๊ฒ์ด๊ณ 8 connected์ ๊ฒฝ์ฐ ๋๊ฐ์ ๊น์ง Neighbor๋ก ์ธ์ํ ์ ์๋ค๋ ์ ์ด ์ฐจ์ด์ด๋ค. (์ด ์ฐจ์ด๋ฅผ ์ ๊ธฐ์ตํ ํ์๊ฐ ์๋ค.)
Circle์ ๊ทธ๋ฆฌ๋ ํจ์๋ ํ๋ผ๋ฏธํฐ์ ์ฐจ์ด์ ๋ง ์๋ฉด ๋๋ค. ์ค์์ ์ขํ์ ๋ฐ์ง๋ฆ์ ๊ธธ์ด๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ๋๋ค๋ ๊ฒ์ ๊ธฐ์ตํ๋ฉด ๋๋ค.
Point ๋ ์ ์ ๋ฏธ๋ฆฌ ์ ์ธํ๊ณ Line ํจ์์ 2,3๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ๊ฐ์ ๋ฃ๊ฒ ๋๋ฉด ์ค๋ฅธ์ชฝ ์ฌ์ง์ฒ๋ผ ์ ์ ๊ทธ๋ฆด ์ ์๋ค.
๋ค๊ฐํ ๋ํ ๊ทธ๋ฆด ์ ์๋ค. ์ด ๊ฒฝ์ฐ์ ์ฐจ์ด์ ์ ๋ฌด์์ด ๋๊ฒ ๋๊ฐ?? ์ญ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๊ฐํ์ ์ขํ๋ฅผ ํํํ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๊ฒ ๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์ ์ ์ด์ค ํฌ์ธํฐ๊ฐ ์ฌ์ฉ๋๋ค๋ ๊ฒ์ด๋ค. ์ด ๋ง์ 2์ฐจ์ ๋ฐฐ์ด์ด ์ฌ์ฉ๋๋ค๋ ๋ป์ผ๋ก ๋ฐ์๋๋ฆฌ๋ฉด ๋๋ค. ์์ธํ ๊ฒ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ดํดํ๋ฉด ํจ์ฌ ๋ ์ ์ ๋ฟ์ ๊ฒ์ด๋ค.
Point ํ์์ผ๋ก trapezoid๋ผ๋ 2์ฐจ์ ๋ฐฐ์ด์ ์ ์ธํ ๊ฒ์ ํ์ธํ ์ ์๋ค. ๊ฐ๊ฐ์ Point๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธ์ ํ๊ณ const Point* ํ์ ์ผ๋ก ๊ฐ์ฒด๋ฅผ ํ๋ ์ ์ธ์ ํด์ค๋ค. ์ด๋ ๊ฒ ๋๋ฉด 2์ฐจ์ ํฌ์ธํฐ ํ์ ์ ๋ง๋๋ก ๋ณ๊ฒฝ์ ์๋ฃํ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ 3 ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ๋ค๊ฐํ์ ์ ์ ๊ฐ์๊ฐ ๋์ง๋ง ์ด ์ญ์ ํฌ์ธํฐ๋ก ํํ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ int npt[] = { 4 }; ์ฒ๋ผ ๋ฐฐ์ด ์ ์ธ์ ํด์ค ๋ค ์ฃผ์๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ๊ฒ ๋๋ค.
Text๋ฅผ ์ฐ๋ ํจ์๋ ์กด์ฌํ๋ค. ์ ๊ณผ ์ฌ๊ฐํ์ ๊ทธ๋ฆฌ๋ ํจ์์ ํ๋ผ๋ฏธํฐ๋ ๋๋ถ๋ถ ๋น์ทํ์ง๋ง 2๋ฒ์งธ~ 4๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ ์ฐจ์ด์ ๋ํด์ ํ ๋ฒ ์ดํด๋ณด์. 2๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ์ฌ์ฉ์๊ฐ ๋ฃ๊ณ ์ ํ๋ Text์ ์ฃผ์๋ฅผ ๋ฃ๊ฒ ๋๋ค. 3 ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ Left-Bottom ์ ์ขํ๋ฅผ ๋ฃ๊ฒ ๋๋ค. 4 ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ fontFace๋ ํฐํธ์ ํ์ ์ ์ง์ ํ ์ ์๋ค. ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ธ๊ผด๋ก ์ง์ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. fontScale์ ๊ฒฝ์ฐ Default๋ก ์ง์ ๋ ํฐํธ์ ๊ธฐ๋ณธ ํฌ๊ธฐ์ ๊ณฑํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ํ๋ผ๋ฏธํฐ๋ True / False์ ๋ํ ๊ฐ์ ๋ฐ๊ฒ ๋๋๋ฐ, True์ ๊ฒฝ์ฐ Left-Bottom์์ ์์์ ํ๋ฉฐ False์ ๊ฒฝ์ฐ Left-Top์์ ์์ํ๊ฒ ๋๋ค๋ ์ฐจ์ด์ ์ด ์๋ค.
ํญ์ ํจ์๋ฅผ ์ดํด๋ณผ ๋ default๋ก ๋ค์ด๊ฐ๋ ๊ฐ๋ค์ ๊ตฌ๊ธ๋งํด์ ์ดํด๋ณผ ํ์๊ฐ ์๋ค. ํ๋ผ๋ฏธํฐ๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด ์ด๋ค ๊ฐ๋ค์ด Default๋ก ๋ค์ด๊ฐ๋์ง ์ดํด๋ณด๋ ์ต๊ด์ ๋ค์ด์.
๋ค์์ผ๋ก๋ ํ์คํ ๊ทธ๋จ์ ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์. Bin ์ด๋ผ๋ ๊ฐ๋ ์ด ๋์ค๊ฒ ๋๋ค. ์ ์ ํ ํฌ๊ธฐ์ bin ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค. ์ด์ด์ ๊ณ์ ์ค๋ช ํ๊ณ ์ ํ๋ค.
์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด equalizeHist ํจ์์ drawHistogram ํจ์๊ฐ ๋ณด์ผ ๊ฒ์ด๋ค. drawHistogram์ ์ฐ๋ฆฌ๊ฐ ์ง์ ๊ตฌํ์ ํด์ผํ๊ณ equalizeHist๋ CV์์ ์ ๊ณตํ๊ณ ์๋ ํจ์์ด๋ค.
DrawHistogram ํจ์์ด๋ค. ์ง์ ๋ถ์ํ๋ฉด์ ์ด๋ป๊ฒ ์ฌ๊ฐํ์ ๊ทธ๋ฆด ์ ์๋์ง ์๊ฐํด๋ณด์!
์ฌ์ค ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก ์ฒ๋ฆฌ๋ฅผ ํ๋ ๊ฒ์ด ๋๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ Write๋ฅผ ํ๋ ๊ฒฝ์ฐ๋ ์ด๋ฒ์๋ ๊ฑฐ์ ์์ ๊ฒ์ด๋ค.