HOME>ITÀü¹®°¡>±×·¡ÇÈ ÇÁ·Î±×·¡¹Ö>OPENCV 2 (±âÃÊ+½Ç¹«)
¾ËÁö¿À ÆÐŰÁö

OPENCV 2 (±âÃÊ+½Ç¹«)

OPENCV 2 (±âÃÊ+½Ç¹«)
20ȸÂ÷ ¼Ó¼º°úÁ¤
Àüü : 15½Ã°£ 0ºÐ|ȸÂ÷´ç Æò±Õ : 45ºÐ0ÃÊ

ÀÌ¿ë±â°£ 2°³¿ù

Àü¹®°­»ç : ¾ËÁö¿À R&D [IT]

300,000¿ø185,000¿ø
OPENCV 2 (±âÃÊ+½Ç¹«) Àΰ­ Æò»ý±³À°¿ø ±³À° ¾È³»
OPENCV 2 ´Â À©µµ¿ì¿Í ¸®´ª½º µî ¿©·¯ ¿î¿µ üÁ¦¸¦ Áö¿øÇÏ´Â ºñµð¿À Ç¥ÁØÀ¸·Î ½Ç½Ã°£À¸·Î ó¸®ÇØ¾ß ÇÏ´Â ¿µ»ó°ú ±×·¡ÇÁ ÀÛ¼º µîÀÇ ±×·¡ÇÈ ÀÛ¾÷¿¡ ¾²À̰í ÀÖ½À´Ï´Ù. OPENCV 2 Àº ¾ËÁö¿À ¿¡¼­ ºñÁê¾ó½ºÆ©µð¿À·Î °³¹ßµÇ¾î ±×·¡ÇÈ ¿µ»óÆÄÀÏ ÀÔÃâ·Â, °ø°£ ¿µ¿ª ÇÊÅ͸µ, ¿µ»ó ºÐÇÒ µî OPENCV 2 ¿¡ ´ëÇØ ÀÚ¼¼È÷ ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.
  • 01.45ºÐ OpenCV¿Í ±¸Çö Ŭ·¡½º ¼Ò°³

    OpenCV ÇÁ·ÎÁ§Æ® »ý¼º ¹× OpenCV ±âº» Ŭ·¡½º µé¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:16] ½Ç½ÀÇÒ ÇÁ·ÎÁ§Æ® ¸¸µé±â/[00:24] Win32 ÄÜ¼Ö ÀÀ¿ëÇÁ·Î±×·¥/[01:24] ȯ°æ¼³Á¤ (C/C++)/[02:02] ȯ°æ¼³Á¤ (Linker)/[02:26] ȯ°æ¼³Á¤ (Linker-Input)/[03:36] ±âº» ÀÚ·áÇü/[03:53] CV_depth/[04:18] Çà·Ä »ý¼º(Mat),ÀÚ·áÅ©±â(CV_8S)/[05:54] DataType/[06:57] cout (Çà·Ä Ãâ·Â)/[07:56] #define (CV ¸ÅÅ©·Î Á¤ÀÇ)/[08:21] Point Ŭ·¡½º/[09:00] Point2f (2D ÁÂÇ¥)/[10:24] Rect (»ç°¢Çü »ý¼º Ŭ·¡½º)/[11:43] not equal (ºñ±³¹®)/[12:13] dotproduct, normal/[13:20] cross (ÁÂÇ¥ ¿ÜÁ¢ ±¸ÇÏ´Â ¸Þ¼Òµå)/[13:35] Point3f (3D ÁÂÇ¥)/[14:18] ºñ±³¹® (if)/[14:45] Size Ŭ·¡½º/[16:13] area ¸Þ¼Òµå(size Å©±â °è»ê)/[16:39] Rect Ŭ·¡½º/[18:14] Rect Ŭ·¡½º µ¡¼À/[20:22] tl, br (Rect Ŭ·¡½º ³»Àå ¸Þ¼Òµå)/[20:36] top left ÁÂÇ¥, bottom right ÁÂÇ¥/[21:11] contains ¸Þ¼Òµå (Àü´ÞÀÎÀÚ)/[22:24] rt1 & rt2/[22:36] rt1 or rt2/[23:00] Çà·Ä »ý¼º/[23:49] namedWindow, imshow/[24:15] RotatedRect Ŭ·¡½º/[24:49] point º¯¼ö »ý¼º/[24:55] rt1.boundingRect();/[26:11] rt1.points(points);/[26:25] canvasÇà·Ä, lineÇÔ¼ö/[26:54] imshowÇÔ¼ö(Ãâ·Â)/[27:12] Matx Ŭ·¡½º/[27:51] Å©±â ÁöÁ¤(23f,13f,21f)/[29:39] µ¡¼À,»¬¼À,°ö¼À °¡´É/[29:58] .dot (³»Àû ±¸Çϱâ)/[30:14] MatxÇà·Ä »ý¼º(ÀÚµ¿ ÃʱâÈ­)/[30:56] eye (´ÜÀ§Çà·Ä »ý¼º)/[31:38] randu(°ª,³­¼ö,°ª)/[32:02] randn(Æò±Õ,Ç¥ÁØÆíÂ÷)/[32:20] Matx ³»Àå ¸Þ¼Òµå/[32:47] A.reshape/[33:13] invA (¿ªÇà·Ä)/[33:25] CHOLESKY, LU/[33:57] solve ¸Þ¼Òµå/[34:15] formulaÇà·Ä, reÇà·Ä/[35:40] Vec Ŭ·¡½º/[35:59] Vec º¯¼ö ¼±¾ð ÈÄ ÃʱâÈ­ ¹æ¹ý/[36:32] Vec ¿ÜÀû, ³»Àû ±¸Çϱâ/[36:41] x, y Vec ¼±¾ð/[36:51] cross ¸Þ¼Òµå (xCrossY)/[37:18] X.mul(Y)/[37:27] sum(xDotY)/[37:39] ScalarÇüÅ (sumÀÇ ¸®ÅÏŸÀÔ)/[38:03] Scalar Ŭ·¡½º/[38:14] Scalar º¯¼ö ¼±¾ð ÈÄ ÃʱâÈ­ ¹æ¹ý/[39:19] uchar, int, float, double/[39:36] Range Ŭ·¡½º/[41:09] (Mat)AÇà·Ä, BÇà·Ä Ãâ·Â/[42:33] Ptr Ŭ·¡½º/[43:00] jpg Á¤Áö ¿µ»ó Ãâ·Â/[43:14] IplImage (Æ÷ÀÎÅÍ º¯¼ö ¼±¾ð, Ãâ·Â)/[43:36] cvReleaseImage/[44:05] empty ¸Þ¼Òµå/[44:19] if(!image)
  • 02.38ºÐ OpenCVÀÇ Áß¿äŬ·¡½º Mat

    OpenCV¿¡¼­ ¿µ»óÀ» ´Ù·ê¶§ °¡Àå ±âº»ÀÌ µÇ´Â MatŬ·¡½ºÀÇ ´Ù¾çÇÑ ³»ºÎ ±¸Á¶¿Í Ȱ¿ä¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:04] Mat Ŭ·¡½º ¾Ë¾Æº¸±â/[00:27] MAt Ŭ·¡½º »ý¼º¹æ¹ý/[01:03] Scalar/[02:14] Rect Ŭ·¡½º/[02:41] Size/[03:25] »ý¼ºµÈ Çà·Ä È®ÀÎ/[04:03] cvarrToMat/[04:18] Çà·Ä »ý¼º/[05:30] default °ª/[06:14] ÄÚµå ½ÇÇà, È®ÀÎ/[06:35] Create/[07:16] Çà·Ä °£ ºñ±³/[09:44] Çà°ú ¿­ Á¢±Ù¹ý, Çì´õ ÁöÁ¤¹ý/[10:25] Çà°ú ¿­ Çì´õ »ý¼º ¹æ¹ý/[11:23] rowRange/[11:37] colRange/[11:54] ÄÚµå ½ÇÇà/[12:34] Çà·Ä º¹»ç,Àüȯ,´ëÀÔ/[13:01] Çà·Ä º¹»ç/[13:36] clone ¸Þ¼Òµå/[14:29] copyTo ¸Þ¼Òµå/[15:29] mask Çà·Ä/[16:37] assignTo ¸Þ¼Òµå/[17:03] convertTo ¸Þ¼Òµå/[18:12] setTo ¸Þ¼Òµå/[18:36] °ª Ãâ·Â/[18:47] Mat Ŭ·¡½º º¯È¯, ÇØÁö/[18:57] ÀÓÀÇÀÇ Çà·Ä »ý¼º,ÃʱâÈ­/[19:05] reshape/[20:53] °á°ú È®ÀÎ/[21:05] resize/[21:43] °á°ú È®ÀÎ/[22:01] Ãß°¡ ÀÎÀÚ Àü´Þ/[22:46] reserve/[23:27] release/[24:00] Çà·Ä Á¤º¸ ÄÚµå/[24:22] rows, cols/[24:33] dims/[24:51] isContinuous/[25:18] total ¸Þ¼Òµå/[25:30] elemSize¸Þ¼Òµå/[26:16] depth ¸Þ¼Òµå/[26:59] channels ¸Þ¼Òµå/[27:07] size ¸Þ¼Òµå/[27:23] Çà·ÄÀÇ ¿¬»ê/[27:36] Çà·Ä »ý¼º, ÃʱâÈ­/[27:56] °á°ú È®ÀÎ/[28:26] ä³Î ¼ö 1°³ ÀÌ»óÀÎ °æ¿ì/[28:55] ä³ÎÀÌ ¿©·¯ °³ÀÎ °æ¿ì/[29:02] Scalar/[29:50] Çà·Ä°ª Á¢±Ù ¹æ¹ý/[30:03] Çà·Ä »ý¼º, ÃʱâÈ­/[30:25] ¹Ýº¹¹®/[30:34] at/[31:36] Çà·ÄB È®ÀÎ/[32:15] °á°ú È®ÀÎ/[32:36] ptr/[33:58] °á°ú È®ÀÎ/[34:13] Region Of Interest/[34:28] Çà·ÄA »ý¼º, ÃʱâÈ­/[34:47] slideWindow/[35:13] locateROI ½ÇÇà/[35:55] °á°ú È®ÀÎ/[36:20] ROI À̵¿/[36:35] adjustROI/[37:30] °á°ú ÇÐÀÎ
  • 03.41ºÐ OpenCVÀÇ Å¬·¡½º Mat_ IOarray ±×¸®°í vector

    OpenCV¿¡ Mat Ŭ·¡½ºÀÇ »ó¼Ó Ŭ·¡½ºÀÎ Mat_ Ŭ·¡½º¿Í Input OutputArray, ±×¸®°í C++ STL¿¡ Á¤ÀǵǾîÀÖ´Â Vector¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:01] °ýÈ£¿¬»êÀÚ/[00:45] Range ÁöÁ¤/[01:06] Rect Ŭ·¡½º·Î ÁöÁ¤/[01:22] Range, Rect Ŭ·¡½º ÁöÁ¤½Ã ÁÖÀÇÁ¡/[02:24] ÀÌÅÍ·¹ÀÌÅÍ/[02:48] MatIterator¿Í MatConstIteratorÀÇ Â÷ÀÌÁ¡/[03:17] MatConstIterator ÀÌ¿ë Çà·ÄÀÇ ÀüüÇÕ ±¸Çϱâ/[04:35] MatIterator ÀÌ¿ë ¿¹Á¦/[05:09] MatConstIterator¿Í MatIteratorÀÇ ½ÇÇà°á°ú/[05:27] push_back, pop_back ¸Þ¼Òµå ¾Ë¾Æº¸±â/[06:23] push_back/[07:35] push_back »ç¿ë ½ÇÇà°á°ú/[07:55] pop_back/[08:24] Mat Ŭ·¡½º ³»Àå¸Þ¼Òµå/[08:42] t()/[09:28] inv()/[10:20] mul()/[11:09] zeros(), ones()/[11:28] eye()/[11:40] Çà·ÄÀÇ ¿ÜÀû, ³»Àû ±¸Çϱâ/[11:48] cross(), dot()/[12:25] Mat_ Ŭ·¡½º/[13:01] Mat_ Çà·ÄA »ý¼º/[13:24] Mat_ Çà·ÄC »ý¼º/[13:47] Mat_ Çà·ÄB »ý¼º/[13:50] size¸¦ array·Î Àü´Þ/[14:55] create()/[15:31] AÇà·Ä Ãâ·Â°á°ú/[15:56] Mat_ Ŭ·¡½º ¿ä¼ÒÀÇ Á¢±Ù/[17:46] rows, cols/[18:00] dims, size, total/[18:13] elemSize, elemSize1/[18:30] isContinuous, depth, channels/[19:57] diag()/[21:42] ROI ¼³Á¤/[22:38] adjustROI()/[23:41] adjustROI ½ÇÇà°á°ú/[24:05] ¿ä¼Ò Á¢±Ù, ÀçÃʱâÈ­, ¿ä¼Ò ŸÀÔ º¯È¯/[24:35] ÃʱâÈ­/[25:25] ¿ä¼Ò ŸÀÔ º¯È¯/[26:33] type()/[26:56] ³»ºÎ Á¤º¸ Á¢±Ù/[28:18] °­Á¦ ŸÀÔ Ä³½ºÆ®/[28:46] Mat_ Ŭ·¡½ºÀÇ iterator/[29:09] const_iterator, iterator/[29:47] MatConstIterator/[30:10] Mat_ Ŭ·¡½ºÀÇ iterator ÄÚµå »ìÆìº¸±â/[30:26] begin()/[30:45] end()/[31:29] InputArray, OutputArray/[32:10] imread()/[33:03] getMat()/[33:34] create()/[34:13] Èæ¹é »çÁø ÆÄÀÏ·Î º¯È¯/[35:32] imshow()/[35:48] vector/[36:31] array¸¦ »ç¿ëÇÑ vector ÃʱâÈ­/[37:06] push_back()/[37:15] pop_back()/[37:49] erase()/[38:17] insert()/[38:42] vector iterator/[39:28] iterator Ãâ·Â¹æ¹ý
  • 04.43ºÐ OPENCV File IO, ¿¹¿Üó¸®, ±âº» µµÇü±×¸®±â

    OpenCV¿¡¼­ÀÇ FILE ÀúÀå ¹× Àбâ, saturate_cast¿Í CV_ASSERT, CV_ERROR¸¦ ÅëÇÑ ¿¹¿Üó¸® ±×¸®°í Á÷¼± »ç°¢Çü ¿ø µî µµÇü ±×¸®±â¿¡ ´ëÇØ ½Ç½ÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:30] vector¸¦ Mat º¯¼ö·Î º¯È¯/[01:15] AÇà·Ä Ãâ·Â/[01:29] Çà·ÄÀÇ ÇüÅÂ/[02:36] reshape()/[03:15] Çà·Ä¡ævector º¯È¯/[03:30] copyTo()/[04:08] vector¡æÆ÷ÀÎÆ® º¯¼ö º¯È¯/[05:12] 2Â÷¿ø Æ÷ÀÎÅÍ º¤ÅÍ/[06:00] º¤Å͸¦ ÅëÇÑ ¿µ»ó°ü¸®/[06:30] vector/[06:59] imread()/[07:30] imshow()/[08:10] xml, yaml ÆÄÀÏ·Î ÀúÀå/[08:21] FileStorage/[09:02] FileStorage »ý¼º/[09:39] release()/[10:52] ÆÄÀÏ¿¡ Á¤º¸ÀÔ·Â/[11:16] ÀúÀåű×/[12:05] int Çü½Ä ÀúÀå/[12:55] sequence ³ëµå/[13:44] mapping ³ëµå/[14:16] sequence ³ëµå Á¢±Ù¹æ¹ý/[14:33] mapping ³ëµå Á¢±Ù¹æ¹ý/[15:08] Point, Mat º¯¼ö/[15:43] ÆÄÀÏ Á¤º¸ Àбâ/[16:02] isOpened()/[17:10] ÆÄÀÏ Á¤º¸ Àд ¹æ¹ý/[18:33] FileNode/[19:31] isSeq(), isMap()/[20:24] empty(), isNone(), isInt(), isReal(), isString()/[20:43] FileNodeIterator/[21:11] node¸¦ ÅëÇØ µ¥ÀÌÅÍ Àбâ/[21:23] Iterator/[22:00] FileNodeIterator »ý¼º/[22:59] fs.release()/[23:09] saturate_cast/[24:33] ¹üÀ§¸¦ ¹þ¾î³­ µ¥ÀÌÅÍ °ª È®ÀÎ/[24:46] saturate_cast »ç¿ë ¹æ¹ý/[26:16] ¿¹¿Üó¸® ÄÚµå/[26:24] CV_Assert, CV_Error/[26:45] CV_Assert ¿¹¿Üó¸®/[27:54] CV_Error ¿¹¿Üó¸®/[28:22] StsDivByZero/[29:27] ¿µ»ó»ý¼º ¹× ¼öÁ¤/[29:37] ¿µ»óÀÇ Á÷¼± ±×¸®±â/[30:15] Line ÇÔ¼ö/[31:38] shift º¯¼ö ÁöÁ¤/[31:50] »ç°¢Çü ±×¸®±â/[32:08] Rect ÇÔ¼ö/[33:30] clipLine/[34:47] clipLine ¼³¸í/[35:34] LineIterator/[35:57] LineIterator »ç¿ë ¿¹Á¦/[36:49] LineIterator »ý¼º/[37:51] iter.count/[38:06] iter.pos()/[38:55] color·Î »çÁø °¡Á®¿À±â/[40:11] ¿ø ±×¸®±â/[40:17] circle ÇÔ¼ö/[41:14] circle ÇÔ¼ö ÀÎÀÚ ¼³¸í/[41:47] ´Ù¸¥ ¿ø ±×¸®±â/[42:03] µÎ²²°¡ À½¼öÀÎ ¿ø
  • 05.47ºÐ ±âº» µµÇü±×¸®±â, UI ó¸®, ¿µ»ó ÀÔÃâ·Â

    Ÿ¿ø ¹× ´Ù°¢Çü ±×¸®±â, OpenCV UIÀÎ mouse, keyboard µîÀÇ À̺¥Æ® ó¸® ±×¸®°í ¿µ»ó ÀÔÃâ·Â¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:00] Ÿ¿ø ±×¸®±â/[00:12] ellipse ÇÔ¼ö ÀÎÀÚ/[01:34] ellipse ÇÔ¼ö ½ÇÇà°á°ú/[02:23] ȸÀü°¢µµ ¼³Á¤/[02:53] startAngle, endAngle/[03:29] startAngle, endAngle º¯°æ/[04:27] endAngle 90µµ·Î º¯°æ/[04:39] µÎ¹øÂ° Ÿ¿ø ±×¸®±â/[04:55] µÎ¹øÂ° Ÿ¿ø Àü´Þ ÀÎÀÚ/[05:33] RotatedRect/[06:12] µÎ¹øÂ° Ÿ¿ø ½ÇÇà°á°ú/[06:53] ÀÓÀÇ ´Ù°¢Çü ±×¸®±â/[07:02] polyline ÇÔ¼ö/[07:22] ¿À°¢Çü, »ï°¢Çü array »ý¼º/[08:09] polyline Àü´ÞÀÎÀÚ ¼³¸í/[08:54] isclosed true ½ÇÇà°á°ú/[09:07] isclosed false ½ÇÇà°á°ú/[09:24] vector »ç¿ë Ãâ·Â¿¹½Ã/[09:59] push_back()/[10:13] Point */[10:49] ´Ù°¢Çü Ãâ·Â ºñ±³/[11:16] ¹®ÀÚ¿­ Ãâ·ÂÇϱâ/[11:23] putText ÇÔ¼ö/[11:45] Ãâ·Â ¹®ÀÚ¿­ º¯¼ö ¼³Á¤/[11:53] Ãâ·Â ÆùÆ®/[12:11] ÆùÆ® ½ºÄÉÀÏ/[12:30] ÆùÆ® ±½±â/[12:37] ±â¿ïÀÓ È¿°ú ³Ö±â/[13:03] Ãâ·ÂµÈ ÅØ½ºÆ® Å©±â ¾ò±â/[13:14] getTextSize ÀÎÀÚ ¼³¸í/[14:19] UI ÇÔ¼ö/[14:43] »çÁø Ãâ·Â À©µµ¿ì »ý¼º/[15:02] namedWindow()/[15:10] imshow()/[15:36] namedWindow()/[15:46] namedWindow() Àü´ÞÀÎÀÚ/[16:06] WINDOW_AUTOSIZE/[16:32] WINDOW_NORMAL/[16:48] resizeWindow()/[17:39] WINDOW_AUTOSIZE·Î À©µµ¿ì »ý¼º/[18:06] resizeWindow()·Î À©µµ¿ì Å©±â ¼³Á¤/[18:31] WINDOW_NORMAL·Î À©µµ¿ì »ý¼º/[18:59] resizeWindow()·Î À©µµ¿ì Å©±â ¼³Á¤/[19:24] Űº¸µå UI/[19:41] waitKey()/[20:13] waitKey Àü´ÞÀÎÀÚ/[21:13] delay °ª/[21:50] Űº¸µå UI ¿¹½Ã/[22:27] r, g, b °ª ¹ÞÀ» ¶§ ÄÚµå/[23:09] Űº¸µå UI ¿¹½Ã ½ÇÇà°á°ú/[23:39] ¸¶¿ì½º UI/[23:56] setMouseCallback()/[24:11] setMouseCallback Àü´ÞÀÎÀÚ/[25:12] onMouse ÇÔ¼ö ÁöÁ¤/[25:59] ¸¶¿ì½º À̺¥Æ®/[26:28] ÇÁ·Î±×·¥ ¼³¸í/[26:45] setMouseCallback()/[28:03] onMouse ÇÔ¼ö ¼³¸í/[29:03] ¸¶¿ì½º À̺¥Æ® ¼³¸í/[29:54] FLAG À̺¥Æ®/[30:25] ÁÂÃø, ¿ìÃø ¸¶¿ì½º Ŭ¸¯½Ã ÄÚµå/[30:48] FLAG È®ÀÎ ¹æ¹ý/[31:30] ÇÁ·Î±×·¥ ½ÇÇà°á°ú/[32:06] Æ®·¢¹Ù/[32:31] createTrackbar()/[32:49] createTrackbar Àü´ÞÀÎÀÚ/[33:12] ½ÃÀÛÆ÷Áö¼Ç, ÃÖ´ë°ª ¼³¸í/[33:34] Æ®·¢¹Ù À̺¥Æ® ó¸® ÇÔ¼öÁöÁ¤/[33:55] onChange ¸Å°³º¯¼ö ¼³¸í/[34:20] Æ®·¢¹Ù ¿¹½Ã ÄÚµå ¼³¸í/[35:03] onChange ÇÔ¼ö ¼³¸í/[35:30] Æ®·¢¹Ù ¿¹½Ã ½ÇÇà°á°ú/[36:00] getTrackbarPos/[36:11] setTrackbarPos/[36:36] ¿µ»óÀ» ÀÐ°í ¾²±â/[36:41] imread ÇÔ¼ö/[37:07] ¿µ»ó °æ·Î ÁöÁ¤/[37:23] IMREAD_COLOR/[37:35] IMREAD_GRAYSCALE/[37:43] IMREAD_ANYDEPTH/[38:28] imwrite ÇÔ¼ö/[38:48] params/[39:10] IMWRITE_JPEG_QUALITY/[39:42] IMWRITE_PNG_COMPRESSION/[40:11] Ãß°¡ ¿É¼Ç ¾øÀÌ imread, imwrite »ç¿ë/[40:40] IMREAD_GRAYSCALE/[41:04] ¿É¼Ç ÁöÁ¤ ¿µ»óÀúÀå/[41:53] COLOR, GRAYSCALE Â÷ÀÌÁ¡/[42:45] ä³Î¼ö È®ÀÎ/[43:28] imencode, imdecode/[43:41] ÀÎÄÚµù/[43:46] µðÄÚµù/[43:55] ¿¹½Ã¿¡¼­ ÀÎÄÚµù/[44:07] ¿¹½Ã¿¡¼­ µðÄÚµù/[44:39] imencode ÀÎÀÚ ¼³¸í/[44:59] imdecode ÀÎÀÚ ¼³¸í/[45:15] imencode, imdecode ÄÚµå ¼³¸í
  • 06.45ºÐ Mat Ŭ·¡½º¸¦ Ȱ¿ëÇÏ´Â ´Ù¾çÇÑ ÇÔ¼ö

    flip repeat split Merge Channel °ú °°ÀÌ Mat ³»ºÎ °ªµéÀ» º¯È¯ÇÏ´Â ÇÔ¼ö¿Í Lut abs bitwise min max¿Í °°Àº Mat Ŭ·¡½º º¯¼ö¸¦ Ȱ¿ëÇÏ´Â ÇÔ¼ö¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:17] flip, repeat ÇÔ¼ö/[05:00] split, merge ÇÔ¼ö/[09:52] mixChannels ÇÔ¼ö/[16:14] LUT ÇÔ¼ö/[20:31] Çà·ÄÀÇ Àý´ë°ªÀ» ±¸ÇÏ´Â ÇÔ¼ö/[24:26] Çà·ÄÀÇ µ¡¼À, »¬¼À, °ö¼À, ³ª´°¼À/[28:27] bitwise ÇÔ¼ö/[32:12] Çà·ÄÀÇ ºñ±³¿¬»ê ÇÔ¼ö/[40:19] min, max ÇÔ¼ö
  • 07.45ºÐ Mat Ŭ·¡½º¸¦ Ȱ¿ëÇÏ´Â ¼öÇÐ Åë°è ¼±Çü´ë ÇÔ¼ö

    ±âº»ÀûÀÎ ¼öÇÐ °ø½Ä ÇÔ¼ö¿Í Çà·ÄÀÇ Åë°è¸¦ À§ÇÑ ÇÔ¼ö ±×¸®°í ¿µ»óÀ» ó¸®ÇÒ ¶§ ÇÊ¿äÇÑ ¼±Çü´ë ÇÔ¼ö¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:27] exp, log, sqrt, pow ÇÔ¼ö/[03:36] ±ØÁÂÇ¥ Å©±â, À§»ó°¢ ±¸Çϱâ/[10:07] 3Â÷ ¹æÁ¤½Ä ±Ù ±¸Çϱâ/[14:08] Çà·ÄÀÇ Åë°è ÇÔ¼ö/[19:47] reduce ÇÔ¼ö/[23:57] Á¤·Ä ÇÔ¼ö/[27:07] randShuffle, ¼±Çü´ë ÇÔ¼ö/[33:26] norm ÇÔ¼ö/[38:16] transform ÇÔ¼ö
  • 08.46ºÐ ¼±Çü´ë ÇÔ¼ö ³ª¸ÓÁö¿Í ³­¼ö »ý¼º Ŭ·¡½º RNG

    ¼±Çü´ë ¼öÇÐ Áß Åõ¿µ º¯È¯ °øºÐ»ê Çà·Ä ¸¶Çϳª³ëºñ½º °Å¸® ±¸Çϱâ¿Í RNG Ŭ·¡½º¿Í randu randn ÇÔ¼ö¸¦ ÅëÇÑ ³­¼ö »ý¼º ¹æ¹ý¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:11] perspectiveTransform, mulTransposed ÇÔ¼ö/[05:36] gemm ÇÔ¼ö/[09:04] trace, transpose, invert ÇÔ¼ö/[14:17] ¿¬¸³¹æÁ¤½ÄÀÇ ±Ù, Çà·ÄÀÇ °íÀ¯°ª°ú °íÀ¯º¤ÅÍ/[19:28] °øºÐ»ê Çà·Ä(COVAR_ROWS)/[26:22] °øºÐ»ê Çà·Ä(COVAR_COLS)/[31:27] Mahalanobis ÇÔ¼ö/[33:49] ³­¼ö ¹ß»ý ÇÔ¼ö (randu, randn)/[39:47] RNG Ŭ·¡½º ÀÌ¿ë ³­¼ö »ý¼º ¹× Ãâ·Â
  • 09.46ºÐ SVD PCA Ŭ·¡½º ±×¸®°í Æ÷ÀÎÆ® ÇÁ·Î¼¼½Ì

    SVD Ŭ·¡½º¿Í PCA Ŭ·¡½º ¼³¸í Æ÷ÀÎÆ® ÇÁ·Î¼¼½Ì º¯È¯ ¿µ»óó¸® ±×¸®°í È÷½ºÅä±×·¥À» »ý¼º »ç¿ë ¿¹½Ã¸¦ ½Ç½ÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:00] SVD Ŭ·¡½º/[07:22] PCA Ŭ·¡½º/[13:58] ¹ÝÀü ¿µ»ó »ý¼º/[16:10] ÀÓ°è°ª ¿µ»ó »ý¼º/[20:43] ÀÌ¿ô °í·Á ÀÓ°è°ª ¿µ»ó »ý¼º/[24:01] ¼±Çü º¯È¯ ¿µ»ó, log º¯È¯ ¿µ»ó, Á¦°ö ¿µ»ó »ý¼º/[31:25] È÷½ºÅä±×·¥ ÀÌ¿ë Åë°è ÀÛ¾÷/[37:59] °¢ ä³Î¿¡ ´ëÇÑ Åë°è/[40:34] µÎ °³ÀÇ È÷½ºÅä±×·¥ ºñ±³
  • 10.42ºÐ È÷½ºÅä±×·¥ ¿ªÅõ¿µ ±×¸®°í ¿µ»óÀÇ ÇÊÅ͸µ1

    È÷½ºÅä±×·¥ EMD¿Í ¿ªÅõ¿µ ¼³¸í, ±×¸®°í ¿µ»ó ÇÊÅ͸µÀÇ ±âº»°ú ½º¹«µù »þÇÁ´× È¿°ú ÁÖ´Â ½Ç½ÀÀ» ÁøÇàÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:01] EMD ÀÌ¿ë À̹ÌÁö ºñ±³/[06:15] ¿ªÅõ¿µ ÇÔ¼ö/[10:27] cvtColor ÇÔ¼ö/[14:12] ÆÐµù/[20:39] ¿µ»ó¿¡ ÇÊÅÍ Àû¿ë/[25:45] ½º¹«µù È¿°ú(boxFilter, medianBlur, blur)/[31:03] °¡¿ì½Ã¾È ºí·¯¿Í °¡¿ì½Ã¾È ÇÊÅÍ/[34:40] bilateralFilter/[37:12] »þÇÁ´×
  • 11.38ºÐ ¿µ»ó ÇÊÅ͸µ2, Á֯ļö ¿µ»ó ´Ù·ç±â

    2Â÷ ¹ÌºÐ, ¸ðÆú·ÎÁö ÇÊÅ͸µ°ú Á֯ļö ¿µ»ó »ý¼º°ú Á֯ļö ÇÊÅ͸µÀÎ low pass filtering, high pass filteringÀ» ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:00] Laplacian »þÇÁ´×/[03:28] ¸ðÆú·ÎÁö ¿¬»ê(erode, dilate)/[07:55] morphologyEx/[11:16] ÅÛÇø´ ¸ÅĪ/[17:25] Á֯ļö ¿µ»óÀ¸·Î º¯È¯/[22:15] fourier ¿ªº¯È¯ /[25:57] Á֯ļö ÇÊÅ͸µ/[27:54] low pass filtering/[34:36] high pass filtering
  • 12.47ºÐ Á֯ļö ¿µ¿ª 2Â÷¹ÌºÐ, dct, ¿µ»óºÐÇÒ

    Á֯ļö ¿µ¿ª 2Â÷¹ÌºÐ, dct ¼Õ½Ç ¾ÐÃà, ¿µ»óºÐÇÒÀÇ CannyÇÔ¼ö¿Í Hough °ËÃâ¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:00] °¡¿ì½Ã¾È 2Â÷ ¹ÌºÐ ÇÊÅ͸µ/[06:03] Convolution, Correlation/[10:01] phaseCorrelate/[17:01] dct º¯È¯/[23:32] ¿µ»ó¿¡¼­ dct º¯È¯ /[27:04] Canny ¿µ»óºÐÇÒ/[32:13] HoughLines Á÷¼± °ËÃâ/[36:07] °ËÃâµÈ Á÷¼±À» ¿µ»ó¿¡ Ãâ·Â/[38:46] HoughLinesp Á÷¼± °ËÃâ/[40:44] HoughCircles ¿ø °ËÃâ/[43:21] ÀÓ°è°ª ÀÌ¿ë ¿µ»óºÐÇÒ
  • 13.41ºÐ ¿µ»ó ºÐÇÒ ÀÓ°èºÐÇÒ, Contour, Ŭ·¯½ºÅ͸µ

    ¿µ»óºÐÇÒ¹æ½Ä - ÀÓ°èºÐÇÒ, Contour Ž»ö, DT mask ±×¸®°í kmean Ŭ·¯½ºÅ͸µ ¹æ½Ä¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:00] inRange ¿µ»óºÐÇÒ/[04:37] À±°û¼± °ËÃâ(findContours)/[09:27] À±°û¼± ±×¸®±â(drawContours)/[11:16] À±°û¼± »ö ä¿ì±â(floodFill)/[16:05] inpaint/[18:51] distanceTransform/[21:28] mask »ç¿ëÇÏ¿© ¿µ»óºÐÇÒ/[27:46] ÇǶó¹Ìµå ¿µ»ó Ãà¼Ò, È®´ë/[29:45] pyrMeanShiftFiltering/[33:04] kmeans Ŭ·¯½ºÅ͸µ ºÐÇÒ/[39:24] ¼Õ ¸ð¾ç ¿µ»ó kmeans ºÐÇÒ
  • 14.43ºÐ ¿µ»ó Ư¡ °ËÃâ

    ÄÚ³ÊÁ¡ °ËÃâ, ¸ð¸àÆ®¿Í Hu ¸ð¸àÆ®ÀÇ Æ¯¼º, ¿µ»ó Ư¡ÀÇ ±Ù»ç, Á¤º¸ Ž»ö¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:00] partition Ŭ·¯½ºÅ͸µ/[03:28] ÄÚ³ÊÁ¡ °ËÃâ(preCornerDetect)/[08:45] cornerEigenValsAndVecs/[13:05] cornerMinEigenVal/[16:09] cornerHarris/[18:39] cornerSubPix/[20:36] goodFeaturesToTrack/[24:14] Moments/[28:32] HuMoments/[33:22] À±°û¼± Ư¡ °ËÃâ ¹× ¸ÅĪ/[37:56] À±°û¼±ÀÇ ±Ù»ç°ª ±¸Çϱâ
  • 15.44ºÐ convex, ÀûºÐ¿µ»ó, Ư¡Á¡

    convex °ü·Ã ÇÔ¼öµé°ú ¸ð¸àÆ®¸¦ Ȱ¿ëÇÑ ¸ÅĪÇÔ¼ö ±×¸®°í ÀûºÐ¿µ»óÀÇ È°¿ë, Keypoint Ŭ·¡½º¿Í Feature2d ÇÔ¼ö¸¦ »ó¼ÓÇϴ Ư¡Á¡ °ËÃâ Ŭ·¡½º¿¡ ´ëÇØ ÇнÀÇÕ´Ï´Ù.

    Ã¥°¥ÇÇ[00:00] pointPolygonTest/[02:51] convex °ü·Ã ÇÔ¼ö/[07:30] isContourConvex/[09:02] convexityDefect/[15:17] matchShapes/[19:15] matchShapes¸¦ ÀÌ¿ëÇÑ ¸ÅĪ ÇÁ·Î±×·¥/[22:53] ÀûºÐ ¿µ»ó/[28:07] ¾ó±¼ ÀÎ½Ä ¾Ë°í¸®Áò/[32:42] KeyPoint Ŭ·¡½º ÀÌ¿ë Æ¯Â¡ °ËÃâ/[38:57] MSER ÀÌ¿ë Æ¯Â¡ °ËÃâ
  • 16.47ºÐ Ư¡Á¡ °ËÃâ±â¿Í ±â¼úÀÚ °è»ê±â

    SimpleBlobDetector GFTTDetectorÀÇ Æ¯Â¡Á¡ °ËÃâ±â¿Í ORB BRISKÀÇ ¹«·á ±â¼úÀÚ °è»ê±â SIFT SURF À¯·á ±â¼úÀÚ °è»ê±âÀÇ ¼Ò°³

    Ã¥°¥ÇÇ[00:00] SimpleBlobDetector Ư¡Á¡ °ËÃâ±â/[05:37] SimpleBlobDetector params ¼³Á¤ ¹æ¹ý/[08:55] GFTTDetector Ư¡Á¡ °ËÃâ±â/[12:51] ORB ±â¼úÀÚ °è»ê±â/[16:02] BRIEF ±â¼úÀÚ °è»ê±â/[19:29] ORB Ŭ·¡½º »ç¿ë/[24:29] brisk ±â¼úÀÚ °è»ê±â/[27:42] SIFT ±â¼úÀÚ °è»ê±â/[32:47] SIFT Ŭ·¡½º º¯¼ö »ý¼º/[35:36] SURF ±â¼úÀÚ °è»ê±â/[39:52] SURF µð¹ö±× ¹öÀü°ú ¹èÆ÷ ¹öÀüÀÇ Â÷ÀÌ/[43:49] OpenCV ¹öÀü¿¡ µû¸¥ keypoints size Â÷ÀÌ/[46:14] SIFT¿Í SUFTÀÇ ¼Óµµ Â÷ÀÌ
  • 17.49ºÐ Ư¡Á¡ ±â¼úÀÚ¸¦ »ç¿ëÇÑ ¸ÅĪ

    DMatch Ŭ·¡½º¿Í DescriptorMatcher Ŭ·¡½º¸¦ »ç¿ëÇÑ ½ÇÁ¦Àû Ư¡Á¡ ±â¼úÀÚ ¸ÅĪ ¹æ¹ý, DrawKeypoints¿Í DrawMatches ÇÔ¼öÀÇ ¼Ò°³

    Ã¥°¥ÇÇ[00:00] DMatch, DescriptorMatcher ÀÌ¿ë ±â¼úÀÚ ¸ÅĪ/[06:43] Bruteforce, FlannBased ¸ÅĪ/[09:50] drawKeypoints/[12:33] drawMatches/[17:16] ORB Ŭ·¡½º ÀÌ¿ë Æ¯Â¡Á¡°ú ±â¼úÀÚ ¸ÅĪ/[22:29] drawMatches ÀÌ¿ë ¸ÅĪ °á°ú È®ÀÎ/[27:02] ¸ÅĪ °á°ú ÇÊÅ͸µ/[29:39] ¸ÅĪÀ» ÅëÇÑ ¿µ»ó Ž»ö/[35:59] BRISK Ŭ·¡½º ÀÌ¿ë Æ¯Â¡Á¡°ú ±â¼úÀÚ ¸ÅĪ/[37:58] SIFT Ŭ·¡½º ÀÌ¿ë Æ¯Â¡Á¡°ú ±â¼úÀÚ ¸ÅĪ/[40:25] knnMatch ¸Þ¼Òµå ÀÌ¿ë Æ¯Â¡Á¡°ú ±â¼úÀÚ ¸ÅĪ/[43:42] FlannBased ¾Ë°í¸®Áò ÀÌ¿ë Æ¯Â¡Á¡°ú ±â¼úÀÚ ¸ÅĪ/[45:37] Flann index »ç¿ë ¹æ¹ý
  • 18.53ºÐ KAZE Ŭ·¡½º, ¾îÆÄÀÎ, Åõ¿µ º¯È¯

    KAZE Ŭ·¡½º¿Í AKAZE Ŭ·¡½º¸¦ ÅëÇÑ ¸ÅĪ, ¿µ»ó »ùÇøµ°ú ¾îÆÄÀÎ º¯È¯ ÇÔ¼ö¿Í Åõ¿µº¯È¯ ÇÔ¼ö

    Ã¥°¥ÇÇ[00:00] radiusMatch/[06:24] KAZE Ŭ·¡½º/[11:58] AKAZE Ŭ·¡½º/[15:41] cvSampleLine ÇÔ¼ö/[20:50] getRectSubPix ÇÔ¼ö/[24:54] resize ÇÔ¼ö/[30:24] getRotationMatrix2D ¾îÆÄÀÎ º¯È¯ ÇÔ¼ö/[34:40] ±× ¿Ü ¾îÆÄÀÎ º¯È¯ ÇÔ¼ö/[39:36] warpAffine ÇÔ¼ö/[43:04] Åõ¿µ º¯È¯/[49:30] findChessboardCorners
  • 19.46ºÐ remap º¯È¯, ºñµð¿À ¿µ»ó Ŭ·¡½º, Â÷¿µ»ó

    remap ÇÔ¼ö¿Í VideoCapture VideoWriter Ŭ·¡½º¸¦ »ç¿ëÇÑ ºñµð¿À ¿µ»óó¸®, ±×¸®°í Â÷¿µ»óÀ» ÅëÇÑ ¿µ»ó³» ¿òÁ÷ÀÓ °ËÃâ ¹æ½Ä

    Ã¥°¥ÇÇ[00:00] remap ÇÔ¼ö/[04:16] ¿µ»ó »óÇÏÁÂ¿ì ¹ÝÀü/[08:22] cvLogPolar ÇÔ¼ö/[10:58] VideoCapture Ŭ·¡½º/[14:43] ÇÑ ÇÁ·¹ÀÓÀ» Àд ¹æ¹ý/[18:13] VideoCapture Ŭ·¡½º »ç¿ë ¿¹½Ã/[22:03] VideoWriter Ŭ·¡½º/[29:25] Â÷¿µ»óÀ» ÅëÇÑ ¿òÁ÷ÀÓ °ËÃâ/[33:50] ¹è°æ Â÷¿µ»ó ±â¹ý/[37:32] accumulate ÇÔ¼ö ÀÌ¿ë ¹è°æ Â÷¿µ»ó ¿òÁ÷ÀÓ °ËÃâ/[43:30] accumulateWeighted ÇÔ¼ö
  • 20.54ºÐ µ¿¿µ»ó ³»¿¡¼­ ¹°Ã¼ ÃßÀû ¾Ë°í¸®Áò

    motion History¸¦ ÅëÇÑ ¿òÁ÷ÀÓ ¹æÇâ Ž»ö, opticalFlow¸¦ ÅëÇÑ ¹°Ã¼ ÃßÀû, KalmanFilter¿Í meanshift, camshift ÇÔ¼ö¸¦ ÅëÇÑ ¹°Ã¼ ¿¹Ãø ÃßÀû

    Ã¥°¥ÇÇ[00:00] histogram ÇÔ¼ö/[03:50] ¿µ»ó ³»ÀÇ ¿òÁ÷ÀÓ ¹æÇâ °ËÃâ/[10:58] ¿µ»óÀÇ Àüü ¿òÁ÷ÀÓ ¹æÇâ °ËÃâ/[14:30] calcOpticalFlowFarneback/[19:40] OpticalFlow flag/[24:35] ¹°Ã¼ÀÇ ¿òÁ÷ÀÓ ÃßÀû/[30:53] Ư¡Á¡À» µ¿¿µ»ó¿¡¼­ ÃßÀû/[35:41] KalmanFilter Ŭ·¡½º/[39:21] KalmanFilter Ŭ·¡½º ÀÌ¿ë ¿ÀÂ÷ ÁÙÀ̱â/[45:06] meanShift ¹°Ã¼ ÃßÀû ÇÔ¼ö/[52:11] camShift ÇÔ¼ö


¾ËÁö¿À ÆÐŰÁö