๋ฐ˜์‘ํ˜•

OpenCV์—์„œ๋Š” VideoCapture ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ WebCam ๋ฐ IP Camera๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

VideoCapture ํด๋ž˜์Šค์— ๊ด€๋ จํ•œ Reference Manual์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.


ํ•˜์ง€๋งŒ, ๋จธ์‹  ๋น„์ „ ์นด๋ฉ”๋ผ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” USB ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ GigE, Camera Link, CoaXPress ๋“ฑ ๋‹ค์–‘ํ•œ ํ‘œ์ค€๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

OpenCV์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์นด๋ฉ”๋ผ ๋˜๋Š” ํ”„๋ ˆ์ž„ ๊ทธ๋ž˜๋ฒ„ ์ œ์กฐ์‚ฌ์˜ ๋“œ๋ผ์ด๋ฒ„ ๋ฐ SDK๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋จธ์‹  ๋น„์ „ ์นด๋ฉ”๋ผ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.


์ฆ‰, ์นด๋ฉ”๋ผ์˜ ์˜์ƒ์„ ์ทจ๋“ํ•˜๋Š” ๋ถ€๋ถ„์€ ์ œ์กฐ์‚ฌ SDK๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์˜์ƒ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„์€ OpenCV SDK๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ์˜ˆ์ œ๋Š” ์นด๋ฉ”๋ผ์˜ Buffer Data๋ฅผ OpenCV Mat์— ์—ฐ๊ฒฐํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.


//byte* pBuffer; ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๋ฒ„ํผ ๋ฐ์ดํ„ฐ.
//int bufferSize; ๋ฒ„ํผ์˜ ํฌ๊ธฐ.
//int width; ์ด๋ฏธ์ง€์˜ ๊ฐ€๋กœ ํ•ด์ƒ๋„.
//int height; ์ด๋ฏธ์ง€์˜ ์„ธ๋กœ ํ•ด์ƒ๋„.

Mat cvImage(height, width, CV_8U); //8bit mono format.
memcpy(cvImage.data, pBuffer, bufferSize);
imwrite("test.bmp", cvImage);

์ฝ”๋“œ๊ฐ€ ์ •๋ง ๊ฐ„๋‹จํ•˜์ฃ ?

์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋œ๊ฑด์ง€ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๋จผ์ € ์ฒซ ์ค„์˜ Mat cvImage์˜ ์ •์˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ์ด๋ฏธ์ง€์˜ ์„ธ๋กœ ํ”ฝ์…€ ์ˆ˜(Height), ๋‘ ๋ฒˆ์งธ๋Š” ์ด๋ฏธ์ง€์˜ ๊ฐ€๋กœ ํ”ฝ์…€ ์ˆ˜(Width), ์„ธ ๋ฒˆ์งธ๋Š” ์ฑ„๋„ ์ˆ˜(Bit per pixel)์ž…๋‹ˆ๋‹ค.


๋‘ ๋ฒˆ์งธ ์ค„์˜ memcpy๋Š” Windows API์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ๋ชฉ์ ์ง€, ๋‘ ๋ฒˆ์งธ ์ธ์ž๋Š” ์†Œ์Šค, ์„ธ ๋ฒˆ์งธ ์ธ์ž๋Š” ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ์—์„œ๋Š” Mat ์ด๋ฏธ์ง€์˜ ๋ฒ„ํผ ๊ณต๊ฐ„์„ ๋ชฉ์ ์ง€๋กœ, ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ ํš๋“ํ•œ ๋ฒ„ํผ๋ฅผ ์†Œ์Šค๋กœ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.


๋งˆ์ง€๋ง‰์œผ๋กœ imwrite ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ํŒŒ์ผ๋ช…, ๋‘ ๋ฒˆ์งธ ์ธ์ž๋Š” ์ด๋ฏธ์ง€๋กœ Mat๋„ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.


API ์„ค๋ช…๋งŒ ๊ธธ์—ˆ์ง€, ๋‚ด์šฉ์€ ๋ณ„๊ฑฐ ์—†์Šต๋‹ˆ๋‹ค.

์ด์ œ ์—ฐ๋™๋œ OpenCV Mat๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์ƒ์ฒ˜๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค!

๋ฐ˜์‘ํ˜•