मैं सी ++ और ओपनसीवी का उपयोग करके एक वास्तविक समय छवि विश्लेषण प्रोजेक्ट विकसित कर रहा हूं जिसके लिए वेबकैम से निकाले जाने वाले फ्रेम की आवश्यकता होती है। मैं किसी भी प्रकार की गति से इन फ्रेमों को निकालने की कोशिश करने में समस्याएं चला रहा हूं - वर्तमान में मैं केवल 18 एफपीएस का प्रबंधन कर सकता हूं।वेबकैम से फ़्रेम का तेज़ निष्कर्षण: सी ++ और ओपनसीवी बनाम मैटलैब
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <ctime>
using namespace std;
using namespace cv;
int main (int argc, char* argv[])
{
VideoCapture cap(0);
if(!cap.isOpened()) return -1;
namedWindow("video", CV_WINDOW_AUTOSIZE);
clock_t start = clock();
for (int i = 0; i < 101; ++i)
{
Mat frame;
cap >> frame;
imshow("video", frame);
waitKey(1);
}
clock_t finish = clock();
double time_elapsed = (finish - start)/1000.0;
double fps = 100/time_elapsed;
cout << "\n\nTIME: " << time_elapsed << "\n\nFPS: " << fps << "\n\n";
return 0;
}
मैं अन्य कोड की कोशिश की है, लेकिन कोई भी मुझे फ्रेम की तुलना में 18 एफपीएस तेजी से निकालने के लिए अनुमति देते हैं: यहाँ सरल कोड मैं वेब कैमरा से तख्ते निकालने के लिए उपयोग कर रहा हूँ है।
vid = videoinput('winvideo', 1, 'MJPG_640x480');
triggerconfig(vid, 'manual');
start(vid);
tic;
for k = 1:100;
clc;
disp(k);
I = peekdata(vid, 1);
imshow(I);
drawnow;
end
toc;
close();
stop(vid);
delete(vid);
मैं अपने सी ++ परियोजना में तेजी लाने के लिए और भी करने के लिए MEX फ़ाइलों का उपयोग कर देखा है: 50 एफपीएस (निम्न कोड का प्रयोग करके) - मैं क्या मैं के 40 मैटलैब में प्राप्त कर सकते हैं के लिए इसी तरह की गति तक पहुँचने के लिए आशा करती हूं कि जीपीयू/सीयूडीए समर्थन को सक्षम करने के लिए, लेकिन मैंने कुछ हार्डवेयर समस्याओं को मारा है, इसलिए मैं देख रहा था कि मेरे वर्तमान कोड में कोई आसान दृष्टिकोण या कुछ याद आ रहा है या नहीं।
अग्रिम धन्यवाद!
संपादित मैं सिर्फ कोड पर एक प्रदर्शन के विश्लेषण भाग गया और वहां कुछ चिपचिपा अंक अर्थात् है:
VideoCapture cap(0); 10.5%
cap >> frame; 36.8%
imshow("video", frame); 31.6%
आप कोड http://answers.opencv.org/question/72386/how-to-get-fps-in-opencv-live पर परीक्षण कर सकते हैं -कैप्चर/अगर कोई अंतर आएगा तो मुझे बताएं। – sturkmen
आपकी प्रतिक्रिया के लिए धन्यवाद। अपने लिंक में दोनों उदाहरणों को आजमाते हुए मुझे केवल 15fps की औसत तक पहुंचने की अनुमति मिली। – MSTTm
यदि आप डीबग मोड चलाते हैं, तो रिलीज़ मोड आज़माएं। – sturkmen