Loading...
2016. 12. 29. 16:08

MVC Pattern์— ๊ธฐ๋ฐ˜ํ•œ GUI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ JavaFX

Java GUI Programming ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” AWT, SWT, Swing, JavaFX๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์˜ ๊ฒฝ์šฐ, AWT์™€ Swing์œผ๋กœ๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ์•„๋งˆ ํ•ด๋ณด์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด, Java์˜ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์ข€ ๋‹ต๋‹ตํ•จ์„ ๋งŽ์ด ๋Š๋ผ์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ GUI Programming์œผ๋กœ ์ฒ˜์Œ ์ ‘ํ–ˆ๋˜ ๊ฒƒ์€ Visual Basic 6.0 ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฑ๋”ฑํ•˜๊ณ  ๊ณ ์ •์ ์ธ ๋Š๋‚Œ์˜ UI์˜€์ง€๋งŒ ๋ถ„๋ช…ํ•œ ๊ฒƒ์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ด์„œ ๊ต‰์žฅํžˆ ์‰ฝ๋‹ค๋Š” ์ ๊ณผ ๋”๋ถˆ์–ด ๋””์ž์ธ์„ ๊ทธ๋ƒฅ ๋งˆ์šฐ์Šค๋กœ๋งŒ ์™”๋‹ค๊ฐ”๋‹ค ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ์ ์ด ๋งค์šฐ ๋ฉ”๋ฆฌํŠธ ์žˆ์—ˆ์ง€์š”. ๊ทธ๋ฆฌ๊ณ , ๋กœ์ง๋งŒ ์ฝ”๋“œ๋กœ ์งœ๋ฉด, ํ”„๋กœ๊ทธ๋žจ์ด ๊ธˆ๋ฐฉ ๊ฐœ๋ฐœ์ด ๋˜์–ด ์ƒ์‚ฐ์„ฑ์ด ๋งค์šฐ ์ข‹์•˜๋˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๊ธฐ๋„ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ง€๊ธˆ๋„ ์กด์žฌํ•˜๋Š” ์–ธ์–ด์ง€์š”. ํ•˜์ง€๋งŒ ์œ ์ผํ•œ ๋‹จ์ ์€ ..

System Call Function VS Library Call Function

์˜ค๋Š˜ ํฌ์ŠคํŠธ๋Š” ๊ฐœ๋ฐœ์ž๋กœ์จ ๋ฐ˜๋“œ์‹œ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผํ•  ๋ถ€๋ถ„ ์ค‘์— ํ•˜๋‚˜๋ฅผ ์จ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์šฐ๋ฆฌ๋Š” ์ฝ˜์†” ํ™”๋ฉด์— ์–ด๋–ค ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์— ์ž…์ถœ๋ ฅ์„ ํ•œ๋‹ค๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๊ฐ๊ฐ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ ํ•จ์ˆ˜๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”๋Œ€๋กœ ์ธ์ž๊ฐ’์„ ๋„ฃ๊ณ , ๊ทธ ์ธ์ž๊ฐ’์„ ๋„ฃ์€๋Œ€๋กœ ์ฝ”๋”ฉ์„ ํ•˜๋ฉด ์ถœ๋ ฅ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด ํ•จ์ˆ˜์—๋„ ๋‘ ๊ฐ€์ง€์˜ ์กด์žฌ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ น ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด.... ์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์ฝ”๋“œ๋Š” ๋งŒ์•ฝ ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ์ฃ . ๋‹ค๋ฅธ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋„ ์—ญ์‹œ ํŒŒ์ผ์„ ์ฐพ์•„์„œ ์ฝ๊ณ , ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๋Š” ์†Œ์Šค ์ฝ”๋“œ์ด์ฃ . ๋ถ„๋ช… ํ•˜๋Š” ์ผ์€ ๊ฐ™..

2016. 12. 18. 11:27

OpenCV์—์„œ Mouse Event๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

์ €์—๊ฒŒ ๋งก๊ฒจ์ง„ 3๊ฐœ์˜ ํ”„๋กœ์ ํŠธ์™€ ๊ธฐ๋ง๊ณ ์‚ฌ๊ฐ€ ๋“œ๋””์–ด ๋์ด๋‚ฌ๋„ค์š”. ์ด๋Ÿฐ์ €๋Ÿฐ ์ผ๋“ค์ด ๋งŽ์•˜์ง€๋งŒ ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์— ๋Œ€ํ•ด ์†Œํ™€ํ•ด์ง€๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ ์ง€๋‚œ ํฌ์ŠคํŠธ์— ์ด์–ด์„œ OpenCV๋ฅผ ์ด์šฉํ•œ ํฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฝ”๋”ฉ์— ์žˆ์–ด์„œ MouseEvent๋Š” ๋งŽ์ด ๋ณด์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„ํŠผ ์•ก์…˜, ์ด๋ฒคํŠธ ์ด๋Ÿฐ ๊ฒƒ ๋งŽ์ด ๋ณด์…จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์˜์ƒ ์ฒ˜๋ฆฌ์—์„œ ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ๋Š” ์–ด๋–ค ์šฉ๋„๋กœ ์“ฐ์ผ๊นŒ์š”? ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ์–ด๋–ค ์˜์ƒ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ๋งŒ๋“ค์–ด์ง„ ์˜์ƒ์„ IplImage๋‚˜ Mat ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ๋˜๋ฉด, ํ•ด๋‹น ์˜์ƒ์—์„œ ํ”ฝ์…€์ด ๋ช‡์ธ์ง€ ๊ถ๊ธˆํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. cout์œผ๋กœ Pixel ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ํ”ฝ์…€ ์ˆ˜ ๋”ฐ๋ผ ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์–‘์„ ์ถœ๋ ฅํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ž์‹ ์ด ์›ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฐ์–ด์„œ ์ฝ”๋”ฉ..