* gridRows Grid rows count.
* gridCols Grid column count.
*/
- CV_WRAP GridAdaptedFeatureDetector( const Ptr<FeatureDetector>& detector,
+ CV_WRAP GridAdaptedFeatureDetector( const Ptr<FeatureDetector>& detector=0,
int maxTotalKeypoints=1000,
int gridRows=4, int gridCols=4 );
// TODO implement read/write
virtual bool empty() const;
+
+ AlgorithmInfo* info() const;
protected:
virtual void detectImpl( const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const;
obj.info()->addParam(obj, "varyXyStepWithScale", obj.varyXyStepWithScale);
obj.info()->addParam(obj, "varyImgBoundWithScale", obj.varyImgBoundWithScale));
+CV_INIT_ALGORITHM(GridAdaptedFeatureDetector, "Feature2D.Grid",
+ obj.info()->addParam(obj, "detector", (Ptr<Algorithm>&)obj.detector);
+ obj.info()->addParam(obj, "maxTotalKeypoints", obj.maxTotalKeypoints);
+ obj.info()->addParam(obj, "gridRows", obj.gridRows);
+ obj.info()->addParam(obj, "gridCols", obj.gridCols));
+
bool initModule_features2d(void)
{
Ptr<Algorithm> brief = createBriefDescriptorExtractor(), orb = createORB(),
star = createStarDetector(), fastd = createFastFeatureDetector(), mser = createMSER(),
- dense = createDenseFeatureDetector(), gftt = createGFTTDetector(), harris = createHarrisDetector();
+ dense = createDenseFeatureDetector(), gftt = createGFTTDetector(),
+ harris = createHarrisDetector(), grid = createGridAdaptedFeatureDetector();
return brief->info() != 0 && orb->info() != 0 && star->info() != 0 &&
fastd->info() != 0 && mser->info() != 0 && dense->info() != 0 &&
- gftt->info() != 0 && harris->info() != 0;
+ gftt->info() != 0 && harris->info() != 0 && grid->info() != 0;
}
}
bool VideoCapture::read(Mat& image)
{
- if(!grab())
- image.release();
- else
+ if(grab())
retrieve(image);
+ else
+ image.release();
return !image.empty();
}
VideoCapture& VideoCapture::operator >> (Mat& image)
{
- if(!grab())
- image.release();
- else
- retrieve(image);
+ read(image);
return *this;
}
const int max_number_of_attempts = 1 << 16;
if( !ic || !video_st ) return false;
+
+ if( ic->streams[video_stream]->nb_frames > 0 &&
+ frame_number > ic->streams[video_stream]->nb_frames )
+ return false;
av_free_packet (&packet);
capture = [[CaptureDelegate alloc] init];
QTCaptureDevice *device;
- NSArray* devices = [QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeVideo];
+ NSArray* devices = [[[QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeVideo]
+ arrayByAddingObjectsFromArray:[QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeMuxed]] retain];
+
if ([devices count] == 0) {
cout << "QTKit didn't find any attached Video Input Devices!" << endl;
[localpool drain];
CV_INIT_ALGORITHM(BackgroundSubtractorMOG2, "BackgroundSubtractor.MOG2",
obj.info()->addParam(obj, "history", obj.history);
+ obj.info()->addParam(obj, "nmixtures", obj.nmixtures);
obj.info()->addParam(obj, "varThreshold", obj.varThreshold);
obj.info()->addParam(obj, "detectShadows", obj.bShadowDetection));