์ปดํจํฐ ๋น์ ์์ ์ ๋ ฅ๋ฐ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ Matrix๋ก ํํํ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Mat์ ๋ํด์ ์ ํํ ์ ํ์๊ฐ ์๋ค.
Pixel์ ํ์ ์ผ๋ก๋ ์์ ๋ณด์ด๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ง๋ง ์ 4๊ฐ์ง๋ฅผ ์ดํด๋ณด์. CV_8U์ ๊ฒฝ์ฐ 8bit unsigned ๋ผ๋ ๋ป์ผ๋ก ์์ ๋ฒ์์์ 2^8์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก 0๋ถํฐ 255์ ๊ฐ์ ๊ฐ์ง๋ค. CV_8S์ ๊ฒฝ์ฐ 8bit signed integer์ด๋ฏ๋ก -128 ๋ถํฐ 127์ ํด๋นํ๋ ๊ฐ์ ๊ฐ์ง๋ค. ๋ค์๋ ์ด์ ๊ฐ์ด ๊ณ์ฐํ๋ฉด ์ ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
์์์ ์ค๋ช ํ ๊ฒ์ Integer์ ๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ U (Unsigned)์ S(Signed)์ด์๋ค๋ฉด F๋ ์กด์ฌํ๋ค. Floating point ์ซ์๋ก๋ ํํํ ์ ์๋ค.
Matrix๋ฅผ ์ ์ธํ ๋ Width์ Height์ ํด๋นํ๋ ๊ฐ๊ณผ ๋๋ถ์ด ์ด๋ค Type์ ํฝ์ ์ ํํํ ์ง ๊ฒฐ์ ํ ์ ์๋ค. ์ด๋ Width์ Height๋ฅผ ํํํ๋ ๋ฐฉ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ ํ์๊ฐ ์๋ค. ์๋ Mat์ ํ๋ผ๋ฏธํฐ๋ก ๋ค์ด๊ฐ๋ ์์๋ row, column ์์์ด์ง๋ง Size ํจ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด column, row ์์๋ก ํํํ๊ฒ ๋๋ค.
OpenCV์์๋ ์์ ์์๊ฐ BGR ์ด๋ผ๋ ๊ฒ์ ๊ธฐ์ตํ์.
์๊ฒ Copyํ๋ ํจ์๊ฐ ์กด์ฌํ๋ค. ์ด๋ ์ฃผ์๋ ๋์ผํ๊ฒ ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ๊ฐ ๋๋ค. ์ฆ shallow copy๋ฅผ ํด์ ์ฌ์ฉ์ ํ๊ฒ ๋๋ฉด ์๋ณธ ์ด๋ฏธ์ง๋ ๋ณํ๋ฅผ ๊ฒช๊ฒ ๋๋ค.
์์ ๋ณต์ฌ์ ๊ฒฝ์ฐ ๋์ผํ ์ฃผ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ํ์ฑ์ด ์กด์ฌํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ฃผ์๋ฅผ ํ ๋นํ์ฌ ๋ณต์ฌํ ์ ์๋ Deep Copy ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. clone()์ด๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ณ , ์ฃผ๋ก ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด๋ค.
copyTo ํจ์๋ ๊น์ ๋ณต์ฌ์ ์์๋ก ์ด ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๊ฐ output Image๊ฐ ๋๋ค๋ ์ ์ ์ฃผ์ํด์ผ ํ๋ค.
๋ค์ ์ฝ๋์ ๊ฒฐ๊ณผ ์ฌ์ง์ ๋ณด๊ณ ํ ๋ฒ ๋น๊ตํด๋ณด๋ฉด ์ ๋ฆฌ๋ ๊ฒ์ด๋ค.
copyTo ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ํ๋ฉด์ ์ดํด๋ณด์.
์ด ๊ฒฝ์ฐ ํด๋น ํฝ์ ์ alpha ๋ฅผ ๊ณฑํ๊ณ beta๋ฅผ ๋ํ๋ Conversion์ ์งํํ๋ ํจ์์ด๋ค. ๋ง ๊ทธ๋๋ก ๊ฐ์ ๋ณ๊ฒฝํ๊ฒ ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ saturate_cast์ ๊ฒฝ์ฐ 255๋ณด๋ค ํฐ ๊ฐ์ธ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ 255๋ก ๋ฎ์ถ๊ฒ ๋๊ณ ๋ฐ๋๋ก 0๋ณด๋ค ์์ ๊ฒฝ์ฐ๋ 0์ผ๋ก ๋ํ์ฃผ๊ฒ ๋๋ค.
setTo ํจ์๋ mask ๋ถ๋ถ์ ํน์ value๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์๋ฏธํ๋ค.
convertScaleAbs ํจ์์ ๊ฒฝ์ฐ ๋์ผํ๊ฒ alpha๋ฅผ ๊ณฑํ๊ณ beta๋ฅผ ๋ํ๊ฒ ๋์ง๋ง src์ ๊ฐ์ ์ ๋๊ฐ์ ์ทจํด์ saturate_cast ํจ์๋ฅผ ํต๊ณผํ๋ค๋ ๊ฒ์ ์ ์ํ์.
imread๋ฅผ ํ ๋ ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก 0์ ๋ฃ๊ฒ ๋๋ฉด Gray scale ์ด๋ฏธ์ง๋ก ์ ๋ ฅ ๋ฐ๊ฒ ๋๊ณ , 1์ ๋ฃ๊ฒ ๋๋ฉด Color Image๋ก ์ ๋ ฅ๋ฐ๊ฒ ๋๋ค.
์์์ ์ ๋ ฅ๋ฐ์ ๋ ์ ์ฉํ Class๊ฐ ์กด์ฌํ๋ค. ๋ค์ ํด๋์ค๋ฅผ ํ ๋ฒ ์์๋ณด์.
get ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ค์๊ณผ ๊ฐ์ ์์๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ๊ฒ ๋๋ฉด ๊ฐ ์์์ ํด๋นํ๋ ์ ๋ณด๋ฅผ ์ป๊ฒ ๋๋ค.
๋น๋์ค์ Frame ์ ์ ์ ์๋ ํ๋ผ๋ฏธํฐ๋ ์กด์ฌํ๋ค.
VideoCapture ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ํด๋น ๊ฐ์ฒด์ open ํจ์๋ฅผ ์ฌ์ฉํด์ ์ํ๋ ๋น๋์ค๋ฅผ ์ด๊ฒ ๋๋ค. get ํจ์๋ฅผ ์ฌ์ฉํด์ ํด๋น ํจ์์ FPS๋ฅผ ์ฝ์ด์ฌ ์ ์๋ค.
์ฝ์ ์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํด์ ์ถ๋ ฅ์ ํ๊ณ ์ถ๋ค๋ฉด imshow ํจ์๋ฅผ ์ฌ์ฉํด์ ์ถ๋ ฅํ๋ฉด ๋๋ค. ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ Window ์ฐฝ์ ์ด๋ฆ์ด๊ณ ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ์ถ๋ ฅํ๊ณ ์ถ์ Matrix์ ์ด๋ฆ์ ๋ฃ์ผ๋ฉด ๋๋ค.
๋ค์์ฒ๋ผ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ํ๋ ๋น๋์ค๋ฅผ ์ถ๋ ฅํ ์ ์๋ค.
watkey์ ํ๋ผ๋ฏธํฐ ๊ฐ์ 0์ ์ฃผ๊ฒ ๋๋ฉด ์ฌ์ฉ์๊ฐ key๋ฅผ ์ ๋ ฅํ ๋ ๊น์ง ์์์ ์ถ๋ ฅํ๊ฒ ๋๋ค.
๋ง์ง๋ง์ผ๋ก resizeํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๋ค. ์ด๋๋ Size ํจ์๋ก ๋๋ฆฌ๊ณ ์ ํ๋ ๋งํผ์ ํฌ๊ธฐ๋ฅผ ๋ฃ์ ์ ์๋๋ฐ Size ํจ์์ row, col ์์๊ฐ ์ด๋ป๊ฒ ๋๋ค๊ณ ํ๋๋ผ?