OpenCV์์ Mouse Event๋ฅผ ์ฌ์ฉํด๋ณด์
์ ์๊ฒ ๋งก๊ฒจ์ง 3๊ฐ์ ํ๋ก์ ํธ์ ๊ธฐ๋ง๊ณ ์ฌ๊ฐ ๋๋์ด ๋์ด๋ฌ๋ค์.
์ด๋ฐ์ ๋ฐ ์ผ๋ค์ด ๋ง์์ง๋ง ๊ทธ๋ ๋ค๋ณด๋ ๋ธ๋ก๊ทธ ํฌ์คํ ์ ๋ํด ์ํํด์ง๊ฒ ๋์๋๋ฐ์. ์ค๋์ ์ง๋ ํฌ์คํธ์ ์ด์ด์ OpenCV๋ฅผ ์ด์ฉํ ํฌ์คํธ๋ฅผ ์์ฑํด๋ณด๊ณ ์ ํฉ๋๋ค.
๋ชจ๋ ์ฝ๋ฉ์ ์์ด์ MouseEvent๋ ๋ง์ด ๋ณด์ จ์ ๊ฒ์ ๋๋ค. ๋ฒํผ ์ก์ , ์ด๋ฒคํธ ์ด๋ฐ ๊ฒ ๋ง์ด ๋ณด์ จ์ ๊ฒ์ด๋ผ ์๊ฐ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ, ์์ ์ฒ๋ฆฌ์์ ๋ง์ฐ์ค ์ด๋ฒคํธ๋ ์ด๋ค ์ฉ๋๋ก ์ฐ์ผ๊น์?
์ฌ๋ฌ๋ถ๋ค์ด ์ด๋ค ์์์ ๋ง๋ค๊ฑฐ๋ ์๋๋ฉด ๋ง๋ค์ด์ง ์์์ IplImage๋ Mat ํด๋์ค๋ฅผ ์ฌ์ฉํด ๋ถ๋ฌ์ค๊ฒ ๋๋ฉด, ํด๋น ์์์์ ํฝ์ ์ด ๋ช์ธ์ง ๊ถ๊ธํ ๋๊ฐ ์์ต๋๋ค.
cout์ผ๋ก Pixel ๊ฐ์ ํ์ธํ ์๋ ์์ง๋ง, ํฝ์ ์ ๋ฐ๋ผ ์์ฒญ๋๊ฒ ๋ง์ ์์ ์ถ๋ ฅํ ์๋ ์๊ณ , ์์ ์ด ์ํ๋ ๋ถ๋ถ์ ์ฐ์ด์ ์ฝ๋ฉํ๊ธฐ์๋ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
์์ฑ ๋์ฐ๊ธฐ
์ง๋ ํฌ์คํธ์์ ์ตํ๋ ๊ฒ์ ๊ทธ๋๋ก ํ์ฉํด์ ์ฌ๋ฌ๋ถ์ด ์ํ๋ ์์์ ๋์๋ด ์๋ค.
์ ๋ 3๊ฐ์ ๋น๊ตฌ๊ณต์ด ์๋ ์ด๋ฏธ์ง๋ฅผ ๋์๋ดค์ต๋๋ค.
๋ณธ๋ ์ด๋ฏธ์ง๋ง ๋์ ์ ๋๋ ๋ง์ฐ์ค๋ ํค๋ณด๋ ์ด๋ค ๋ฒํผ์ ํด๋ฆญํด๋ ๋ฐ์์ด ์์ต๋๋ค. ์ ๊ทธ๋ผ ์ด๋ฏธ์ง์ ๋ง์ฐ์ค ์ด๋ฒคํธ๋ฅผ ์ค๋ณด๊ฒ ์ต๋๋ค.
MouseEvent
๋ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋์ ์ง๋ง, ๋ ๋ค ๋ชจ๋ ๋๊ฐ์ ์ด๋ฏธ์ง์์ ์ ์ ์์ต๋๋ค. ํ์ดํ๋๋ก, ํ ์ด๋ฏธ์ง๋ ๋ง์ฐ์ค ์ด๋ฒคํธ๊ฐ ์๊ณ , ๋ค๋ฅธ ์ด๋ฏธ์ง์๋ ๋ง์ฐ์ค ์ด๋ฒคํธ๊ฐ ์๋๋ฐ, ์ํ์ฌ๋ง cout์ ์ฌ์ฉํด์ ๋ด๊ฐ ํด๋ฆญํ ๋ง์ฐ์ค ์ง์ ์ Point ํด๋์ค๋ฅผ ์ฌ์ฉํด x, y ๊ฐ์ผ๋ก ๋ณด์ฌ์ฃผ๋๋ก ํ์ต๋๋ค.
Non Mouse Event ์ฐฝ์ ๋ง์ฐ์ค๋ฅผ 100๋ฒ์ ๋๋ค๊ฒจ๋ ์๋ฌด๋ฐ ๋ฐ์์ด ์์ง๋ง, Mouse Event ์ด๋ฏธ์ง์์ ๋ง์ฐ์ค ํด๋ฆญ์ ํ๋ฉด, ๋ด๊ฐ ์ฐ์ ์ง์ ์ ์ขํ๋ฅผ ์ ํํ๊ฒ ์ถ๋ ฅํด์ค๋๋ค. ์ด ์ขํ๋ฅผ ๊ฐ์ง๊ณ , ์ด ์์ ์ด๋ค ๋ฌด์ธ๊ฐ๋ฅผ ๊ทธ๋ฆด ์๋ ์๊ณ , ์ด ์ขํ ๊ฐ์ ๋ด์ฉ์ ๋ฐ๊ฟ์๋ ์์ต๋๋ค.
๊ทธ๋ฆผํ์ ํ์ ์ง์ฐ๊ฐ
๋ง์ฐ์ค ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋จํ ๊ฒ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. Windows์์ ์ด๋ ธ์ ๋ ์์ฃผ ๊ฐ์ง๊ณ ๋๋ ๊ทธ๋ฆผํ์ด ์์ฃ , ๊ทธ ๊ทธ๋ฆผํ์๋ ์ง์ฐ๊ฐ๊ฐ ์๋๋ฐ์. ๊ฐ๋จํ๊ฒ ๊ทธ ์ง์ฐ๊ฐ๋ฅผ ํ ๋ฒ ๊ตฌํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด๋ ต์ง ์์ต๋๋ค. ์์์๋ ๋จ์ํ ๋ง์ฐ์ค ํด๋ฆญ๋ง์ ์ฌ์ฉํ์ง๋ง, OpenCV์์๋ EVENT_MOUSEMOVE๋ผ๋ ๊ฒ์ ์ ๊ณตํด์ฃผ์ด์ ์ด๋ฅผ ์ด์ง ์ฐ์ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ง์ฐ์ค ํด๋ฆญ๊ณผ ๋์์ ์ด๋ํ๋ฉด, circle ์ฝ๋๊ฐ ์ํ๋ฉ๋๋ค.
๋ณธ๋ ๊ทธ๋ฆผํ์ ์ง์ฐ๊ฐ๋ ์ฌ๊ฐํ์ด์ง๋ง, ๋ญ ๋๊ฐ์ด ํ๋ผ๋ ๋ฒ์ ์๊ธฐ ๋๋ฌธ์ ใ
ใ
์ ๋ circle์ ์ฌ์ฉํ์ต๋๋ค.
์ง์ฐ๊ฐ๋ ๋ณดํต ํ์์๊น๋ก ์น ํด์ง๊ธฐ ๋๋ฌธ์ Scalar ๊ฐ์ ์ ๋ถ 255๋ฅผ ์ฌ์ฉํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
๋ง์น๋ฉฐ....
OpenCV๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์ด์ ๊น์ง๋ง ํด๋, ํ ์คํธ๋ฅผ ์ฃผ๋ฌด๋ฅด๊ณ ๋๊ฑฐ๋ GUI ํ๋ก๊ทธ๋๋ฐ์ ์ฃผ๋ฌด๋ฅด๊ฑฐ๋ ๋ ์ค ํ ๊ฐ์์ง๋ง OpenCV๋ฅผ ๊ฐ์ง๊ณ ์์์ฒ๋ฆฌ๋ฅผ ์ฝ๊ฒ ํ ์ ์์์ ์ฌ๋ฏธ๊ฐ ์กฐ๊ธ ๋ง์ด ์๊ฒจ๋ฒ๋ฆํด ๋ธ๋ก๊ทธ์ ๊ธ์ ์ฌ๋ฆฌ๊ณค ํ๊ณ ์์ต๋๋ค.
์์ฆ ๋ฅ๋ฌ๋์ด๋ ๋จธ์ ๋ฌ๋์ด ์ ์ ํ ์คํธ์ ์ฒ๋ฆฌ๊ฐ ์๋ ํ์ ์ฒ๋ฆฌ๊ฐ ์ ์ ๋์ ๋๊ณ ์๊ณ , ์๊ฐ์ด ์ง๋ ์๋ก ์์์ฒ๋ฆฌ์ ํ์์ฑ์ ๊ฐ์๋ก ๋์์ง๊ณ ์์ต๋๋ค. ์ค์ ์์์ฒ๋ฆฌ๋ ๋ฒ์ฃ ์๋ฐฉ์ด๋ ๊ตฐ์ฌ๋ชฉ์ ์ผ๋ก๋ ์ฌ์ฉ๋๊ณ ์๊ณ , ๊ทธ ๋ฐ์ ์ด ์ ์ ๋์์ง๋ ์ถ์ธ์ ์๋ค๊ณ ํฉ๋๋ค.
๋ค์ OpenCV ํฌ์คํธ๋ ํค๋ณด๋ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ ํฌ์คํธ๋ฅผ ์งํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
'Programming > OpenCV' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[GP] OpenCV Trackbar ์ฃผ๋ฌด๋ฅด๊ธฐ (0) | 2017.03.01 |
---|---|
OpenCV์์ KeyEvent๋ฅผ ์ฌ์ฉํด๋ณด์. (0) | 2017.01.21 |
OpenCV์ ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ฐฉ๋ฒ๊ณผ Mat ํด๋์ค (0) | 2016.11.20 |
Ubuntu 16.04 ์์ OpenCV 3.x ์ค์น (0) | 2016.11.06 |
C++์์ ์์ํด๋ณด๋ OpenCV (0) | 2016.10.30 |