Episode 4: Feature Detection and Optical Flow , problem!

Hi, I’m trying to run this tutorial but im getting this error:
error: ‘OrbFeatureDetector’ is not a member of ‘cv’
cv::OrbFeatureDetector detector;

I’m using OpenCV 3.3 and I don’t know if this library is just for Opencv4tegra, can someone confirm? or how can I use it correctly.
Greetings

This changed from opencv2 (opencv4tegra is 2.4) to opencv3.

You may change to something like:

cv::Ptr<ORB> detect = cv::ORB::create();
detect->doSomething();

I tryied didnt work,can you provide an example on this code?

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc.hpp> 
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/video/video.hpp>

int main()
{
    cv::VideoCapture input(1);
    cv::Mat img;

    cv::orbFeatureDetector detector;
    std::vector<cv::KeyPoint> keypoints;

    for (;;)
    { 
	if (!input.read(img))
	    break;

	detector(img, cv::Mat(), keypoints);
	
	for (size_t i = 0; i < keypoints.size(); i++)
	cv::circle(img, keypoints[i].pt, 2,
	    cv::Scalar(0, 0, 255), 1);
	
	cv::imshow("img", img);
	char c = cv::waitKey();

	if (c == 27) // 27 is ESC
	    break;
    }
}

This example successfully runs on my TX2 with L4T R28.1 and opencv-3.3.0. I have adapted for testing with onboard camera :

#include <opencv2/features2d.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/opencv.hpp>
#include <vector>
#include <iostream>

int main()
{
	const char* gst =  "nvcamerasrc  ! video/x-raw(memory:NVMM), format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)30/1 ! \
			    nvvidconv    ! video/x-raw,              format=(string)BGRx, width=(int)640, height=(int)480 ! \
			    videoconvert ! video/x-raw,              format=(string)BGR ! \
			    appsink";

	cv::VideoCapture input(gst);
	if(!input.isOpened()) {
		std::cout<<"Failed to open camera."<<std::endl;
		return -1;
	}

	cv::Mat img;
	cv::Mat desc;
	std::vector<cv::KeyPoint> keypoints;
	cv::Ptr<cv::ORB> detector = cv::ORB::create();

	for (;;)
	{ 
		if (!input.read(img))
			break;
		
		detector->detect(img, keypoints, desc);
		for (size_t i = 0; i < keypoints.size(); i++)
			cv::circle(img, keypoints[i].pt, 2, cv::Scalar(0, 0, 255), 1);
	
		cv::imshow("img", img);
		char c = cv::waitKey(1);

		if (c == 27) // 27 is ESC
			break;
	}
}

I see!, Thank you very much for your time!