๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ’ก EE's DEV20

[๋„คํŠธ์›Œํฌ] OSI 7๊ณ„์ธต ๋ชจ๋ธ OSI ์ฐธ์กฐ๋ชจ๋ธ์ด๋ž€?: ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ข…์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•ด ISO ๊ธฐ๊ตฌ์—์„œ ์ œ์•ˆํ•œ ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ๋กœ, ๊ฐœ๋ฐฉํ˜• ์‹œ์Šคํ…œ ์ƒํ˜ธ ์—ฐ๊ฒฐ ๋ชจ๋ธ์ด๋‹ค. OSI ์ฐธ์กฐ ๋ชจ๋ธ์˜ ์—ญํ• 1 ๋ชจ๋“ˆ๋ณ„ ๊ธฐ๋Šฅ ํŠนํ™”2 ์„ค๊ณ„ ๊ฐœ๋ฐœ ๊ฐ€์†ํ™”3 ๋„คํŠธ์›Œํฌ์˜ ์ž‘๋™ ๋ฐฉ๋ฒ• ์ดํ•ด4 ์ธํ„ฐํŽ˜์ด์Šค ํ‘œ์ค€ํ™”5 ๋„คํŠธ์›Œํฌ์˜ ๋ณต์žก์„ฑ ๋‹จ์ˆœํ™”6 ์ƒํ˜ธ์—ฐ๋™ ๋ฐ ๋™์ž‘๊ธฐ์ˆ  ๋ณด์žฅ ๊ณ„์ธตํ™”7๊ณ„์ธต : ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ใ…ก6๊ณ„์ธต : ํ‘œํ˜„ ์ƒ์œ„ ๊ณ„์ธต5๊ณ„์ธต : ์„ธ์…˜ ๋ฉ”์‹œ์ง€ ํ‘œํ˜„ ํ˜•์‹, ์‚ฌ์šฉ์ž ์„œ๋น„์Šค4๊ณ„์ธต : ์ „์†ก ใ…ก3๊ณ„์ธต : ๋„คํŠธ์›Œํฌ ํ•˜์œ„ ๊ณ„์ธต2๊ณ„์ธต : ๋ฐ์ดํ„ฐ๋งํฌ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ, ๊ฒฝ๋กœ ์„ค์ •1๊ณ„์ธต : ๋ฌผ๋ฆฌ ใ…ก ์บก์Šํ™”๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต์—์„œ๋Š” ํŠธ๋ ˆ์ผ๋Ÿฌ๊ฐ€ ๋ถ™๊ฑฐ๋‚˜ ๋ถ„๋ฆฌ๋œ๋‹ค.Host A : ๊ฐ ๊ณ„์ธต์„ ํ†ต๊ณผํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ์ข… ์ •๋ณด๋ฅผ ๋‹ด์€ ํ—ค๋”๊ฐ€ ์ถ”๊ฐ€๋จHost B : ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ์˜ ํ—ค๋”๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ .. 2017. 12. 19.
[๋„คํŠธ์›Œํฌ] ์œˆ๋„์šฐ ๋„คํŠธ์›Œํฌ๋ช…๋ น์–ด 1. ipconfig ์ž์‹ ์˜ NIC(๋žœ์นด๋“œ)์— 1 ํ• ๋‹น๋œ ์ •๋ณด๋ฅผ ๋ณด๊ฑฐ๋‚˜ 2 ์žฌํ• ๋‹น ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ๊ธฐ๋ณธ์ ์œผ๋กœ ipconfig ๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด NIC(๋žœ์นด๋“œ)์— ํ• ๋‹น๋œ IP์ฃผ์†Œ, ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ๊ฐ’, ๊ธฐ๋ณธ ๊ฒŒ์ดํŠธ์›จ์ด ์ฃผ์†Œ ๊ฐ’์ด ํ‘œ์‹œ๋œ๋‹ค. ipconfig [/allcompartments] [์˜ต์…˜] ์œผ๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ /?๋„์›€๋ง ๋ฉ”์‹œ์ง€ ํ‘œ์‹œ /all์ž์„ธํ•œ ์ •๋ณด ํ‘œ์‹œ/renew/renew E*ํ• ๋‹น๋ฐ›์€ DHCP์ •๋ณด ๊ฐฑ์‹  ํ• ๋‹น๋ฐ›์€ DHCP์ •๋ณด ์ค‘ E๋กœ ์‹œ์ž‘๋˜๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ •๋ณด ๊ฐฑ์‹ /release/release *Con*๋ชจ๋“  ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด DHCP๋ฅผ ํ†ตํ•ด ์–ป์€ ์„ค์ •์ •๋ณด๋ฅผ ํ•ด์ œCon์ด ๋“ค์–ด๊ฐ„ ๋ชจ๋“  ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์„ค์ •์ •๋ณด ํ•ด์ œ/flushdnsDNS ํ™•์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์บ์‹œ ์‚ญ์ œ/registerdns๋ชจ๋“  DHCP ์ •๋ณด๋ฅผ ์ƒˆ๋กœ.. 2017. 12. 19.
[๋„คํŠธ์›Œํฌ] ํ”„๋กœํ† ์ฝœ์˜ ์š”์†Œ์™€ ๊ธฐ๋Šฅ ํ”„๋กœํ† ์ฝœ (Protocol) ๋ณธ๋ž˜ ์™ธ๊ต์—์„œ ์˜๋ก€ ๋˜๋Š” ์˜์ •์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง๋กœ ์“ฐ์ด์ง€๋งŒ,๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ์—์„œ๋Š” ํ‘œ์ค€ํ™”๋œ ํ†ต์‹ ๊ทœ์•ฝ์œผ๋กœ์„œ ํšจ์œจ์ ์œผ๋กœ ๊ธด์œผ์„ ๋ฐœํœ˜ํ•˜๊ธฐ ์œ„ํ•œ ํ˜‘์ •์ฆ‰, ํ†ต์‹ ์„ ํ•˜๋ ค๋Š” ๋‘ ๊ฐœ์ฒด ๊ฐ„ ๋ฌด์—‡์„, ์–ด๋–ป๊ฒŒ, ์–ธ์ œ ํ†ต์‹ ํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ์„œ๋กœ ์•ฝ์†ํ•œ ๊ฒƒ ํ”„๋กœํ† ์ฝœ์˜ ์ฃผ์š” ์š”์†Œ ๊ตฌ๋ฌธ (Syntax) ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋‚˜ ํ˜•์‹, ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ์ˆœ์„œ๋กœ ํ‘œํ˜„๋˜๋Š”์ง€๋ฅผ ์˜๋ฏธํ•จ์˜๋ฏธ (Semantics) ๋น„ํŠธ์—์„œ ๊ฐ ๋ถ€๋ถ„์˜ ๋œป์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ ํŠน์ • ํŒจํ„ด์€ ์–ด๋–ป๊ฒŒ ํ•ด์„๋˜๋ฉฐ, ํ•ด์„์— ๊ธฐ์ดˆํ•˜์—ฌ ์–ด๋–ค ๋™์ž‘์„ ์ทจํ•  ๊ฒƒ์ธ๊ฐ€์— ํ•ด๋‹นํ•˜๋Š” ์ •๋ณดํƒ€์ด๋ฐ (Timing) ์–ธ์ œ, ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด ํ”„๋กœํ† ์ฝœ์˜ ๊ธฐ๋Šฅ ๋ถ„ํ•  / ์žฌ์กฐ๋ฆฝ Application ๊ณ„์ธต์—์„œ ๋ฉ”์‹œ์ง€ ์ „์†ก์ด ์šฉ์ดํ•˜๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์ž‘์€ ๋ธ”๋ก์œผ๋กœ ๋ถ„.. 2017. 2. 27.
[์˜์ƒ์ฒ˜๋ฆฌ] openCV2 ์ด์ง„ํ™” ํŠธ๋ž™๋ฐ”, ๋ชจํด๋กœ์ง€ - ์นจ์‹ ํŒฝ์ฐฝ ์—ด๋ฆผ ๋‹ซํž˜ ์—ฐ์‚ฐ Binarization, ์ด์ง„ํ™”threshold ๊ฐ’์„ ์ •ํ•œ ํ›„, ํ•œ์ชฝ์€ 0์œผ๋กœ ๋‹ค๋ฅธ ํ•œ์ชฝ์€ 1 ๋˜๋Š” 255๋กœ ๋ฐ”๊พธ๋Š” ์ž‘์—… ์ด์ง„ํ™” ํŠธ๋ž™๋ฐ” ์„ค์ • void binaryzationTrackbar(int, void*){ out2 = out1.clone(); for (int y = 0; y = value) out2.at(y, x) = 255; else out2.at(y, x) = 0; } } imshow("edgeBinarization", out2);} Morphology, ๋ชจํด๋กœ์ง€ ์˜์ƒ ๋‚ด ๊ฐ ๋ฐ์€ ์˜์—ญ์ด๋‚˜ ์–ด๋‘์šด ์˜์—ญ์„ ์ถ•์†Œ, ํ™•๋Œ€ํ•˜๋Š” ๊ธฐ๋ฒ•์ด์ง„ํ™”.. 2017. 2. 27.
[์˜์ƒ์ฒ˜๋ฆฌ] openCV2 ํžˆ์Šคํ† ๊ทธ๋žจ, ์ •๊ทœํ™”, ์ŠคํŠธ๋ ˆ์นญ, ๊ท ๋“ฑํ™” Histogram, ํžˆ์Šคํ† ๊ทธ๋žจ์˜์ƒ ๋‚ด ๊ฐ ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ํ”ฝ์…€์˜ ๊ฐœ์ˆ˜๋ฅผ ํ•จ์ˆ˜์˜ ๊ผด๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์„ ํžˆ์Šคํ† ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. h(g)=ngโ€‹g = ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ณ  ๋ฒ”์œ„๋Š” 0~255n_g = ๊ทธ๋ ˆ์ด์Šค์ผ€์ผ ๊ฐ’์ด g ์ธ ํ”ฝ์…€์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค h(g) ํ•จ์ˆ˜์˜ ๊ฐ’์€ ์˜์ƒ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ž‘๊ฑฐ๋‚˜ ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ n_g ๋ฅผ ์˜์ƒ์˜ ์ „์ฒด ํ”ฝ์…€์˜ ๊ฐœ์ˆ˜๋กœ ๋‚˜๋ˆ„๋Š” ์ •๊ทœํ™”(normalize) ๊ณผ์ •์„ ํ†ตํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ํ‘œํ˜„ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ •๊ทœํ™”๋œ ํžˆ์Šคํ† ๊ทธ๋žจ ์ •๊ทœํ™”๋œ ํžˆ์Šคํ† ๊ทธ๋žจ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ํŠน์ • ๊ทธ๋ ˆ์ด ์Šค์ผ€์ผ(gray scale) ๊ฐ’์ด ๋‚˜ํƒ€๋‚˜๋Š” ํ™•๋ฅ ์˜ ๊ฐœ๋…์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. p(g) = ํ™•๋ฅ  ๊ฐ’, ํ™•๋ฅ ์„ ์˜๋ฏธํ•˜๋Š” p๋กœ ๋ณ€๊ฒฝ (probabili.. 2017. 2. 27.
[์˜์ƒ์ฒ˜๋ฆฌ] openCV2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด์šฉํ•˜๊ธฐ - Canny Edge detector, Finding contours OpenCV ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜ˆ์ œ Sobel Derivatives https://docs.opencv.org/master/d2/d2c/tutorial_sobel_derivatives.htmlLaplace Operator https://docs.opencv.org/master/d5/db5/tutorial_laplace_operator.htmlCanny Edge Detector https://docs.opencv.org/master/da/d5c/tutorial_canny_detector.htmlHough Circle Transform https://docs.opencv.org/master/d4/d70/tutorial_hough_circle.htmlFinding contours in your image https:.. 2017. 2. 27.
[์˜์ƒ์ฒ˜๋ฆฌ] openCV2 Edge ๊ฒ€์ถœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—์ง€ ๊ฒ€์ถœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•Œ์•„๋ณด๊ธฐ 1. ์†Œ๋ฒจ, ํ”„๋ฆฌ์œ—, ๋กœ๋ฒ„์ธ , ๋ผํ”Œ๋ผ์‹œ์•ˆ ์žฅ๋‹จ์  2. ๊ฐ€์šฐ์‹œ์•ˆ -> ๋ผํ”Œ๋ผ์‹œ์•ˆ vs ๋ผํ”Œ๋ผ์‹œ์•ˆ ๋น„๊ต Edge Edge๋Š” ๊ฒฝ๊ณ„์„ , ์œค๊ณฝ์„ ์„ ์˜๋ฏธํ•จ์˜์ƒ์—์„œ edge๋Š” ์˜์ƒ์˜ ๋ฐ๊ธฐ๊ฐ€ ๋‚ฎ์€ ๊ฐ’์—์„œ ๋†’์€ ๊ฐ’์œผ๋กœ / ๋†’์€ ๊ฐ’์—์„œ ๋‚ฎ์€ ๊ฐ’์œผ๋กœ ๋ณ€ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋œปํ•จedge๋Š” ์˜์ƒ์•ˆ์— ์žˆ๋Š” ๊ฐ์ฒด์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์œผ๋กœ, ๋ชจ์–‘๊ณผ ๋ฐฉํ–ฅ์„ฑ์„ ํƒ์ง€ํ•  ์ˆ˜ ์žˆ์Œ์—์ง€์— ํ•ด๋‹นํ•˜๋Š” ํ™”์†Œ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์„ edge detection ์ด๋ผ ํ•จ 1์ฐจ ๋ฏธ๋ถ„ edge๋Š” ๋ช…์•”(๋ฐ๊ธฐ)์˜ ๋ณ€ํ™”๊ฐ€ ํฐ ์ง€์ ๋ช…์•”์˜ ๋ณ€ํ™”์œจ์ธ ๊ธฐ์šธ๊ธฐ(gradient)๋ฅผ ๊ฒ€์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•, 1์ฐจ ๋ฏธ๋ถ„์ด๋ผ ํ•จ์ˆ˜ํ‰ ๋ฐฉํ–ฅ ๋ฏธ๋ถ„ G(x) = f(x-1, y) - f(x+1, y)์ˆ˜์ง ๋ฐฉํ–ฅ ๋ฏธ๋ถ„ G(y) = f(x, y-1) - f(x, y+1)Edge = |G(.. 2017. 2. 27.
[์˜์ƒ์ฒ˜๋ฆฌ] OpenCV2 ํ”ฝ์…€ ์—ฐ์‚ฐ – ํ‰๊ท , ๋ง์…ˆ, ๋บ„์ƒ˜, ํ‰๊ท  ๊ฐ’, ๊ฐ€์ค‘ ํ‰๊ท  ๊ฐ’, ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ ๋‘ ์ด๋ฏธ์ง€๊ฐ„ ํ”ฝ์…€์˜ ํ‰๊ท  ๊ฐ’ ๊ตฌํ•˜๊ธฐvoid avgImage(Mat &img1, Mat &img2, Mat &out){ for (int y = 0; y ๋‘ ์ด๋ฏธ์ง€๊ฐ„ ํ”ฝ์…€์˜ ๋”ํ•œ ๊ฐ’ ๊ตฌํ•˜๊ธฐ#include #include #include using namespace cv; void addImage(Mat &img1, Mat &img2, Mat &out){ for (int y = 0; y < out.siz.. 2017. 2. 27.
[์˜์ƒ์ฒ˜๋ฆฌ] openCV2 ์ด๋ฏธ์ง€ ๊ธฐ๋ณธ ์—ฐ์‚ฐ, ์ƒ‰์ƒ ๋ชจ๋ธ ์žก์Œ ์ƒ์„ฑ#include #include #include using namespace std;using namespace cv; void salt(Mat &image, int snum){ for (int n = 0; n < snum; n++) { int x = rand() % image.cols; int y = rand() % image.rows; if (image.channels() == 1) // Gray { image.at(y, x) = 0; // ํฐ์ƒ‰ ์žก์Œ } else if (image.channels() == 3) // RGB { image.at(y, x)[0] = 255; image.at(y, x)[1] = 255; image.at(y, x)[2] = 255; } }} int main(){ M.. 2017. 2. 27.
728x90