Making all dependencies from highgui module optional

This commit is contained in:
Andrey Kamaev 2012-06-26 07:29:36 +00:00
parent 700b685575
commit ecf6b5a87c
12 changed files with 124 additions and 24 deletions

View File

@ -1 +1 @@
ocv_define_module(contrib opencv_imgproc opencv_calib3d opencv_features2d opencv_highgui opencv_ml opencv_video opencv_objdetect) ocv_define_module(contrib opencv_imgproc opencv_calib3d opencv_features2d opencv_ml opencv_video opencv_objdetect OPTIONAL opencv_highgui)

View File

@ -44,7 +44,10 @@
// //
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/highgui/highgui.hpp" #include "opencv2/opencv_modules.hpp"
#ifdef HAVE_OPENCV_HIGHGUI
# include "opencv2/highgui/highgui.hpp"
#endif
#include <iostream> #include <iostream>
#include <queue> #include <queue>
@ -907,13 +910,16 @@ void ChamferMatcher::Template::show() const
} }
} }
circle(templ_color,Point(center.x + pad, center.y + pad),1,CV_RGB(0,255,0)); circle(templ_color,Point(center.x + pad, center.y + pad),1,CV_RGB(0,255,0));
#ifdef HAVE_OPENCV_HIGHGUI
namedWindow("templ",1); namedWindow("templ",1);
imshow("templ",templ_color); imshow("templ",templ_color);
cvWaitKey(0); cvWaitKey(0);
#else
CV_Error(CV_StsNotImplemented, "OpenCV has been compiled without GUI support");
#endif
templ_color.release(); templ_color.release();
} }

View File

@ -39,10 +39,16 @@
// the use of this software, even if advised of the possibility of such damage. // the use of this software, even if advised of the possibility of such damage.
// //
//M*/ //M*/
#define SHOW_DEBUG_IMAGES 0
#include "opencv2/core/core.hpp" #include "opencv2/core/core.hpp"
#include "opencv2/calib3d/calib3d.hpp" #include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/highgui/highgui.hpp" #if SHOW_DEBUG_IMAGES
# include "opencv2/highgui/highgui.hpp"
#endif
#include "precomp.hpp" #include "precomp.hpp"
#include <iostream> #include <iostream>
@ -58,7 +64,6 @@
#include <limits> #include <limits>
#define SHOW_DEBUG_IMAGES 0
using namespace cv; using namespace cv;
inline static inline static

View File

@ -1 +1 @@
ocv_define_module(legacy opencv_calib3d opencv_highgui opencv_video opencv_ml) ocv_define_module(legacy opencv_calib3d opencv_video opencv_ml OPTIONAL opencv_highgui)

View File

@ -46,7 +46,10 @@
// */ // */
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/highgui/highgui_c.h" #include "opencv2/opencv_modules.hpp"
#ifdef HAVE_OPENCV_HIGHGUI
# include "opencv2/highgui/highgui_c.h"
#endif
/////////////////////////////// CvImage implementation ////////////////////////////////// /////////////////////////////// CvImage implementation //////////////////////////////////
@ -112,8 +115,10 @@ bool CvImage::load( const char* filename, const char* imgname, int color )
img = temp_img; img = temp_img;
}*/ }*/
} }
#ifdef HAVE_OPENCV_HIGHGUI
else else
img = cvLoadImage( filename, color ); img = cvLoadImage( filename, color );
#endif
attach( img ); attach( img );
return img != 0; return img != 0;
@ -161,8 +166,12 @@ void CvImage::save( const char* filename, const char* imgname, const int* params
return; return;
if( icvIsXmlOrYaml( filename ) ) if( icvIsXmlOrYaml( filename ) )
cvSave( filename, image, imgname ); cvSave( filename, image, imgname );
#ifdef HAVE_OPENCV_HIGHGUI
else else
cvSaveImage( filename, image, params ); cvSaveImage( filename, image, params );
#else
(void)params;
#endif
} }
@ -175,8 +184,12 @@ void CvImage::write( CvFileStorage* fs, const char* imgname )
void CvImage::show( const char* window_name ) void CvImage::show( const char* window_name )
{ {
#ifdef HAVE_OPENCV_HIGHGUI
if( image ) if( image )
cvShowImage( window_name, image ); cvShowImage( window_name, image );
#else
(void)window_name;
#endif
} }
@ -238,8 +251,10 @@ bool CvMatrix::load( const char* filename, const char* matname, int color )
m = temp_mat; m = temp_mat;
}*/ }*/
} }
#ifdef HAVE_OPENCV_HIGHGUI
else else
m = cvLoadImageM( filename, color ); m = cvLoadImageM( filename, color );
#endif
set( m, false ); set( m, false );
return m != 0; return m != 0;
@ -287,8 +302,12 @@ void CvMatrix::save( const char* filename, const char* matname, const int* param
return; return;
if( icvIsXmlOrYaml( filename ) ) if( icvIsXmlOrYaml( filename ) )
cvSave( filename, matrix, matname ); cvSave( filename, matrix, matname );
#ifdef HAVE_OPENCV_HIGHGUI
else else
cvSaveImage( filename, matrix, params ); cvSaveImage( filename, matrix, params );
#else
(void)params;
#endif
} }
@ -301,8 +320,12 @@ void CvMatrix::write( CvFileStorage* fs, const char* matname )
void CvMatrix::show( const char* window_name ) void CvMatrix::show( const char* window_name )
{ {
#ifdef HAVE_OPENCV_HIGHGUI
if( matrix ) if( matrix )
cvShowImage( window_name, matrix ); cvShowImage( window_name, matrix );
#else
(void)window_name;
#endif
} }

View File

@ -8,7 +8,10 @@
*/ */
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/highgui/highgui.hpp" #include "opencv2/opencv_modules.hpp"
#ifdef HAVE_OPENCV_HIGHGUI
# include "opencv2/highgui/highgui.hpp"
#endif
#include <stdio.h> #include <stdio.h>
namespace cv{ namespace cv{
@ -665,7 +668,11 @@ namespace cv{
cvMinMaxLoc(m_samples[i], 0, &maxval); cvMinMaxLoc(m_samples[i], 0, &maxval);
cvConvertScale(m_samples[i], patch, 255/maxval); cvConvertScale(m_samples[i], patch, 255/maxval);
#ifdef HAVE_OPENCV_HIGHGUI
cvSaveImage(buf, patch); cvSaveImage(buf, patch);
#else
CV_Error(CV_StsNotImplemented, "OpenCV has been compiled without image I/O support");
#endif
cvReleaseImage(&patch); cvReleaseImage(&patch);
} }
@ -1794,7 +1801,12 @@ namespace cv{
sprintf(filename, "%s/%s", path, imagename); sprintf(filename, "%s/%s", path, imagename);
//printf("Reading image %s...", filename); //printf("Reading image %s...", filename);
IplImage* img = cvLoadImage(filename, CV_LOAD_IMAGE_GRAYSCALE); IplImage* img = 0;
#ifdef HAVE_OPENCV_HIGHGUI
img = cvLoadImage(filename, CV_LOAD_IMAGE_GRAYSCALE);
#else
CV_Error(CV_StsNotImplemented, "OpenCV has been compiled without image I/O support");
#endif
//printf("done\n"); //printf("done\n");
extractPatches (img, patches, patch_size); extractPatches (img, patches, patch_size);

View File

@ -1,2 +1,2 @@
set(the_description "Object Detection") set(the_description "Object Detection")
ocv_define_module(objdetect OPTIONAL opencv_highgui) ocv_define_module(objdetect opencv_core opencv_imgproc OPTIONAL opencv_highgui)

View File

@ -1,3 +1,3 @@
set(the_description "Video stabilization") set(the_description "Video stabilization")
ocv_define_module(videostab opencv_imgproc opencv_features2d opencv_video opencv_highgui opencv_photo opencv_calib3d OPTIONAL opencv_gpu) ocv_define_module(videostab opencv_imgproc opencv_features2d opencv_video opencv_photo opencv_calib3d OPTIONAL opencv_gpu opencv_highgui)

View File

@ -46,7 +46,6 @@
#include <vector> #include <vector>
#include <string> #include <string>
#include "opencv2/core/core.hpp" #include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
namespace cv namespace cv
{ {
@ -76,15 +75,17 @@ public:
virtual void reset(); virtual void reset();
virtual Mat nextFrame(); virtual Mat nextFrame();
int width() { return static_cast<int>(reader_.get(CV_CAP_PROP_FRAME_WIDTH)); } int width();
int height() { return static_cast<int>(reader_.get(CV_CAP_PROP_FRAME_HEIGHT)); } int height();
int count() { return static_cast<int>(reader_.get(CV_CAP_PROP_FRAME_COUNT)); } int count();
double fps() { return reader_.get(CV_CAP_PROP_FPS); } double fps();
private: private:
std::string path_; std::string path_;
bool volatileFrame_; bool volatileFrame_;
VideoCapture reader_;
struct VideoReader;
const VideoReader& reader_;
}; };
} // namespace videostab } // namespace videostab

View File

@ -44,6 +44,11 @@
#include "opencv2/videostab/frame_source.hpp" #include "opencv2/videostab/frame_source.hpp"
#include "opencv2/videostab/ring_buffer.hpp" #include "opencv2/videostab/ring_buffer.hpp"
#include "opencv2/opencv_modules.hpp"
#ifdef HAVE_OPENCV_HIGHGUI
# include "opencv2/highgui/highgui.hpp"
#endif
using namespace std; using namespace std;
namespace cv namespace cv
@ -51,25 +56,74 @@ namespace cv
namespace videostab namespace videostab
{ {
struct VideoFileSource::VideoReader
{
#ifdef HAVE_OPENCV_HIGHGUI
mutable VideoCapture vc;
#endif
};
VideoFileSource::VideoFileSource(const string &path, bool volatileFrame) VideoFileSource::VideoFileSource(const string &path, bool volatileFrame)
: path_(path), volatileFrame_(volatileFrame) { reset(); } : path_(path), volatileFrame_(volatileFrame), reader_(VideoReader()) { reset(); }
void VideoFileSource::reset() void VideoFileSource::reset()
{ {
reader_.release(); #ifdef HAVE_OPENCV_HIGHGUI
reader_.open(path_); reader_.vc.release();
if (!reader_.isOpened()) reader_.vc.open(path_);
if (!reader_.vc.isOpened())
throw runtime_error("can't open file: " + path_); throw runtime_error("can't open file: " + path_);
#else
CV_Error(CV_StsNotImplemented, "OpenCV has been compiled without video I/O support");
#endif
} }
Mat VideoFileSource::nextFrame() Mat VideoFileSource::nextFrame()
{ {
Mat frame; Mat frame;
reader_ >> frame; #ifdef HAVE_OPENCV_HIGHGUI
reader_.vc >> frame;
#endif
return volatileFrame_ ? frame : frame.clone(); return volatileFrame_ ? frame : frame.clone();
} }
int VideoFileSource::width()
{
#ifdef HAVE_OPENCV_HIGHGUI
return static_cast<int>(reader_.vc.get(CV_CAP_PROP_FRAME_WIDTH));
#else
return 0;
#endif
}
int VideoFileSource::height()
{
#ifdef HAVE_OPENCV_HIGHGUI
return static_cast<int>(reader_.vc.get(CV_CAP_PROP_FRAME_HEIGHT));
#else
return 0;
#endif
}
int VideoFileSource::count()
{
#ifdef HAVE_OPENCV_HIGHGUI
return static_cast<int>(reader_.vc.get(CV_CAP_PROP_FRAME_COUNT));
#else
return 0;
#endif
}
double VideoFileSource::fps()
{
#ifdef HAVE_OPENCV_HIGHGUI
return reader_.vc.get(CV_CAP_PROP_FPS);
#else
return 0;
#endif
}
} // namespace videostab } // namespace videostab
} // namespace cv } // namespace cv

View File

@ -51,7 +51,6 @@
#include <iostream> #include <iostream>
#include <ctime> #include <ctime>
#include "opencv2/core/core.hpp" #include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/video/video.hpp" #include "opencv2/video/video.hpp"
#include "opencv2/features2d/features2d.hpp" #include "opencv2/features2d/features2d.hpp"

View File

@ -38,7 +38,7 @@ class CascadeDetectorAdapter: public DetectionBasedTracker::IDetector
cv::Ptr<cv::CascadeClassifier> Detector; cv::Ptr<cv::CascadeClassifier> Detector;
}; };
int main(int argc, char* argv[]) int main(int , char** )
{ {
namedWindow(WindowName); namedWindow(WindowName);