Closed Reena24 closed 10 years ago
Hi @Reena24
thank you for your interest in PTAM. This package however is a version of PTAM for robots running Linux which we branched off the original PTAM version from George Klein nearly 2 years ago. Therefore the support for Windows (and possibly new OpenCV versions) is limited which might be now causing the compilation issues you are seeing. I would recommend downloading the original sources from: https://github.com/Oxford-PTAM/PTAM-GPL
Good websites to get help with this original package are: http://ewokrampage.wordpress.com/ http://www.robots.ox.ac.uk/~gk/PTAM/
Simon
Hi I encounter this error, and I'm using a usb camera,I don't know to resolve it, any suggestion please, g++ -o PTAM main.o GLWindow2.o GLWindowMenu.o VideoSource_Linux_DV.o System.o ATANCamera.o KeyFrame.o MapPoint.o Map.o SmallBlurryImage.o ShiTomasi.o HomographyInit.o MapMaker.o Bundle.o PatchFinder.o Relocaliser.o MiniPatch.o MapViewer.o ARDriver.o EyeGame.o Tracker.o -L/usr/local/lib -lGVars3 -lcvd -lopencv_legacy -lopencv_core -lopencv_video -lopencv_highgui -lGLU -lGL -llapack -lblas VideoSource_Linux_DV.o: dans la fonction « VideoSource::VideoSource() »: VideoSource_Linux_DV.cc:(.text+0xcf): référence indéfinie vers « CVD::DV3::RawDVBuffer3::RawDVBuffer3(CVD::DV3::DV3ColourSpace, int, unsigned long, int, bool, bool, CVD::ImageRef, float, CVD::ImageRef, int) » VideoSource_Linux_DV.o: dans la fonction « CVD::DVBuffer3::frame_pending() »: VideoSource_Linux_DV.cc:(.text._ZN3CVD9DVBuffer3INS_6yuv411EE13frame_pendingEv[_ZN3CVD9DVBuffer3INS_6yuv411EE13frame_pendingEv]+0x5): référence indéfinie vers « CVD::DV3::RawDVBuffer3::frame_pending() » VideoSource_Linux_DV.o: dans la fonction « CVD::DVBuffer3::get_frame() »: VideoSource_Linux_DV.cc:(.text._ZN3CVD9DVBuffer3INS_6yuv411EE9get_frameEv[_ZN3CVD9DVBuffer3INS_6yuv411EE9get_frameEv]+0x5): référence indéfinie vers « CVD::DV3::RawDVBuffer3::get_frame() » VideoSource_Linux_DV.o: dans la fonction « CVD::DVBuffer3::putframe(CVD::VideoFrame) »: VideoSource_Linux_DV.cc:(.text._ZN3CVD9DVBuffer3INS_6yuv411EE9put_frameEPNS_10VideoFrameIS1_EE[_ZN3CVD9DVBuffer3INS_6yuv411EE9put_frameEPNS_10VideoFrameIS1_EE]+0x5): référence indéfinie vers « CVD::DV3::RawDVBuffer3::putframe(CVD::VideoFrame) » VideoSource_Linux_DV.o: dans la fonction « CVD::DVBuffer3::~DVBuffer3() »: VideoSource_Linux_DV.cc:(.text._ZN3CVD9DVBuffer3INS_6yuv411EED1Ev[_ZN3CVD9DVBuffer3INS_6yuv411EED1Ev]+0x1d): référence indéfinie vers « CVD::DV3::RawDVBuffer3::~RawDVBuffer3() » VideoSource_Linux_DV.o: dans la fonction « CVD::DVBuffer3::~DVBuffer3() »: VideoSource_Linux_DV.cc:(.text._ZN3CVD9DVBuffer3INS_6yuv411EED0Ev[_ZN3CVD9DVBuffer3INS_6yuv411EED0Ev]+0x1d): référence indéfinie vers « CVD::DV3::RawDVBuffer3::~RawDVBuffer3() » VideoSource_Linux_DV.o:(.rodata._ZTIN3CVD9DVBuffer3INS_6yuv411EEE[_ZTIN3CVD9DVBuffer3INS_6yuv411EEE]+0x28): référence indéfinie vers « typeinfo for CVD::DV3::RawDVBuffer3 » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0x48): référence indéfinie vers « typeinfo for CVD::DV3::RawDVBuffer3 » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0x58): référence indéfinie vers « CVD::DV3::RawDVBuffer3::~RawDVBuffer3() » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0x60): référence indéfinie vers « CVD::DV3::RawDVBuffer3::~RawDVBuffer3() » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0x70): référence indéfinie vers « CVD::DV3::RawDVBuffer3::frame_pending() » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0xd0): référence indéfinie vers « typeinfo for CVD::DV3::RawDVBuffer3 » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0xe0): référence indéfinie vers « virtual thunk to CVD::DV3::RawDVBuffer3::~RawDVBuffer3() » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0xe8): référence indéfinie vers « virtual thunk to CVD::DV3::RawDVBuffer3::~RawDVBuffer3() » VideoSource_Linux_DV.o:(.rodata._ZTCN3CVD9DVBuffer3INS_6yuv411EEE16_NS_3DV312RawDVBuffer3E[_ZTVN3CVD9DVBuffer3INS_6yuv411EEE]+0xf8): référence indéfinie vers « virtual thunk to CVD::DV3::RawDVBuffer3::frame_pending() » collect2: error: ld returned 1 exit status make: *\ [PTAM] Erreur 1 thank you.
Hi I am trying to execute the code using another webcam( Intex IT-306WC Webcam : http://www.flipkart.com/intex-it-306wc-webcam/p/itmdzbhp8gsbsfh6?pid=ACCDZBKAUREYCRPD&otracker=from-search&srno=t_4&query=webcam&ref=b83f2815-cc12-409a-90df-15268e72fc14 It has a focus range of 4 to Infinity cm .) I am using OpenCV 2.4.4 with VS2010 in Windows so I saw few codes and tried to make the changes but I get errors which I do not know how to handle. I did not modify the VideoSource.h file but I tried to modify the file in the cpp file VideoSource.h
struct VideoSourceData;
class VideoSource { public: VideoSource(); void GetAndFillFrameBWandRGB(CVD::ImageCVD::byte &imBW, CVD::ImageCVD::Rgb &imRGB);
CVD::ImageRef Size();
private: void *mptr; CVD::ImageRef mirSize; };
.cpp file
VideoSource::VideoSource() { VideoCapture* cap = new::VideoCapture;//(VideoCapture*)mptr; mptr = cap; cout << " VideoSource_Windows: Opening video source..." <isOpened();
if(!cap->isOpened())
{
std::cerr<<"Could Not Find the Camera or Video "<<std::endl;
exit(1);
} else { cout << " ... got video source." << endl; } mirSize = ImageRef(640,480);
};
ImageRef VideoSource::Size() { return mirSize; };
void conversionNB(Mat &frame, ImageCVD::byte &imBW) {
}
void conversionRGB(Mat &frame, ImageCVD::Rgb &imRGB)
{
}
void VideoSource::GetAndFillFrameBWandRGB(ImageCVD::byte &imBW, ImageCVD::Rgb &imRGB)
{
Mat frame;
VideoCapture* cap = (VideoCapture*)mptr;
cap->set(CV_CAP_PROP_FRAME_WIDTH,640);
cap->set(CV_CAP_PROP_FRAME_HEIGHT,480);
cap->set(CV_CAP_PROP_FPS,30);
double fps = cap->get(CV_CAP_PROP_FPS); //get the frames per seconds of the video
} ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// during compile time I get the error 1>VideoSource_Win32_CMU1394.cpp(56): error C2664: 'cv::Mat cv::Mat::operator ()(cv::Range,cv::Range) const' : cannot convert parameter 1 from 'int' to 'cv::Range' 1> No constructor could take the source type, or constructor overload resolution was ambiguous 1>VideoSource_Win32_CMU1394.cpp(56): error C2664: 'cv::Mat cv::Mat::operator ()(cv::Range,cv::Range) const' : cannot convert parameter 1 from 'int' to 'cv::Range' 1> No constructor could take the source type, or constructor overload resolution was ambiguous 1>VideoSource_Win32_CMU1394.cpp(56): error C2664: 'cv::Mat cv::Mat::operator ()(cv::Range,cv::Range) const' : cannot convert parameter 1 from 'int' to 'cv::Range' 1> No constructor could take the source type, or constructor overload resolution was ambiguous 1>VideoSource_Win32CMU1394.cpp(71): error C3849: function-style call on an expression of type 'cv::Mat' would lose const and/or volatile qualifiers for all 13 available operator overloads 1>VideoSource_Win32CMU1394.cpp(72): error C3849: function-style call on an expression of type 'cv::Mat' would lose const and/or volatile qualifiers for all 13 available operator overloads 1>VideoSource_Win32CMU1394.cpp(73): error C3849: function-style call on an expression of type 'cv::Mat' would lose const and/or volatile qualifiers for all 13 available operator overloads 1> 1>Build FAILED.
Can someone please help me solve this error cause I have been stuck with the code for sometime. Its a bit urgent. I have not been able to run the code because of the error. Maybe because I am using OpenCV 2.4.4 but I am not sure what header file is missing nor how to modify the code for the error