±¾ÎÄʵÀýΪ´ó¼Ò·ÖÏíÁËC#+EmguCVʹÓÃÉãÏñÍ·¶ÁÈ¡¡¢±£´æÊÓÆµµÄ¾ßÌå´úÂ룬¹©´ó¼Ò²Î¿¼£¬¾ßÌåÄÚÈÝÈçÏÂ
ÔÚEmgucvÖе÷ÓÃÉãÏñÍ·ÐèÒªÓõ½VideoCaptureÀà
Õâ¸öÀàÓÐËÄÖÖÖØÔØµÄ·½Ê½
1¡¢²»Ð´²ÎÊý£¬ÄÇô³õʼ»¯µÄʱºò¾Í»áµ÷ÓÃĬÈϵÄÉãÏñÍ·
2¡¢Ò»¸öintÀàÐ͵ÄÊý×Ö£¬Õâ¸öÊý×ֵĺ¬ÒåÊÇÉãÏñÍ·µÄË÷Òý¡£»á°´ÕÕË÷ÒýÀ´³õʼ»¯ÉãÏñÍ·
3¡¢Ò»¸ö×Ö·û´®£¬Õâ¸ö×Ö·û´®µÄº¬ÒåÊÇÎļþÃû»òÊÓÆµÁ÷Ãû¡£³õʼ»¯»á¶ÁÈ¡ÊÓÆµÎļþ»òÊÓÆµÁ÷
4¡¢CaptureType µÄö¾Ù
Õâ¸öö¾ÙµÄÄÚÈݺܶ࣬ÕâÀï²»ÔÙ׸Êö
н¨Ò»¸ö¿ØÖÆÌ¨Ó¦ÓóÌÐòÀ´ÊµÏÖÊÓÆµµÄ¶ÁÈ¡ºÍ±£´æ£¬´úÂëÈçÏÂ
class Program ? ? { ? ? ? ? static void Main(string[] args) ? ? ? ? { ? ? ? ? ? ? show(); ? ? ? ? } ? ? ? ? ? private static void show() ? ? ? ? { ? ? ? ? ? ? //VideoCapture cap = new VideoCapture("AVSEQ02.avi"); ? ? ? ? ? ? //VideoCapture cap = new VideoCapture(CaptureType.Any); ? ? ? ? ? ? VideoCapture cap = new VideoCapture(); ? ? ? ? ? ? VideoWriter writer = new VideoWriter("save.avi", 20, new Size(640, 480), true); ? ? ? ? ? ? if (!cap.IsOpened) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? Console.WriteLine("´ò¿ªÊ§°Ü"); ? ? ? ? ? ? ? ? return; ? ? ? ? ? ? } ? ? ? ? ? ? Mat mat = new Mat(); ? ? ? ? ? ? while (true) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? cap.Read(mat); ? ? ? ? ? ? ? ? if (mat.IsEmpty) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? Console.WriteLine("¶ÁÈ¡Íê±Ï"); ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? CvInvoke.Imshow("video", mat); ? ? ? ? ? ? ? ? writer.Write(mat); ? ? ? ? ? ? ? ? CvInvoke.WaitKey(30); ? ? ? ? ? ? } ? ? ? ? ? ? CvInvoke.WaitKey(0); ? ? ? ? ? } ? ? }
ÕâÀïÓÃVideoCapture µÄRead()·½·¨À´¶ÁÈ¡ÊÓÆµµÄÿһ֡¡£±£´æÔÚMatÕâ¸ö¶ÔÏóÖС£²¢ CvInvoke.Imshow()³öÀ´¡£È»ºóÓÃVideoWriterµÄWrite·½·¨£¬°Ñÿһ֡µÄͼÏñ±£´æ³ÉÊÓÆµ¡£
ÕâÀïÐèҪעÒâµÄµØ·½ÊÇ£ºÔÚÑ»·ÖÐÐèҪͣÁô30ºÁÃ룬·ñÔòÊÓÆµÏÔʾ²»³öÀ´¡£ CvInvoke.WaitKey(30);
ÔËÐгÌÐòºó£¬¿ÉÒÔ¿´µ½£¬ÉãÏñÍ·¶ÁÈ¡µÄÊÓÆµÒѾ±£´æÁËÏÂÀ´
ÒÔÉϾÍÊDZ¾ÎĵÄÈ«²¿ÄÚÈÝ£¬Ï£Íû¶Ô´ó¼ÒµÄѧϰÓÐËù°ïÖú£¬Ò²Ï£Íû´ó¼Ò¶à¶àÖ§³ÖÔ´ÂëËѲØÍø¡£