diff --git a/color-space/cvImage.cpp b/color-space/cvImage.cpp index 7bd234d..aebd60d 100644 --- a/color-space/cvImage.cpp +++ b/color-space/cvImage.cpp @@ -55,7 +55,7 @@ void cvImage::Mat2QImage(cv::Mat const& src, QImage* dest ) cv::Mat temp(src); - cvtColor(src, temp,CV_BGR2RGB); + cvtColor(src, temp,COLOR_BGR2RGB); if (dest) { delete dest; @@ -70,7 +70,7 @@ void cvImage::QImage2Mat(QImage* const& src, cv::Mat& res) { QImage temp = src->copy(); res=cv::Mat(temp.height(),temp.width(),CV_8UC3,(uchar*)temp.bits(),temp.bytesPerLine()); - cvtColor(res, res,CV_RGB2BGR); + cvtColor(res, res,COLOR_RGB2BGR); //return res; } @@ -116,7 +116,7 @@ void cvImage::_open() cv::Mat img = cv::imread(filename.toStdString()); if (img.empty()) return; - cvtColor(img, img,CV_BGR2RGB); + cvtColor(img, img,COLOR_BGR2RGB); _img=img; // _image is created according to video dimensions if (_image) @@ -174,12 +174,12 @@ void cvImage::_hsvView() delete _image; cv::Mat hsv, hsvI; - cv::cvtColor(_img,hsv,CV_RGB2HSV); + cv::cvtColor(_img,hsv,COLOR_RGB2HSV); // on permute V et H pour visualisation dans Qimage // mapage bgr d'onpencv -> permutation pour que les affiche soit corect - cv::vector tmp; + std::vector tmp; cv::split(hsv,tmp); hsvI=tmp[0]; @@ -205,15 +205,15 @@ void cvImage::_save() cv::Mat tmp; - cv::cvtColor(_img,tmp,CV_RGB2BGR); + cv::cvtColor(_img,tmp,COLOR_RGB2BGR); cv::imwrite("src.jpg",tmp); - cv::cvtColor(_img,tmp,CV_RGB2HSV); + cv::cvtColor(_img,tmp,COLOR_RGB2HSV); cv::imwrite("src_HSV.jpg",tmp); - if (!_img_eq_rgb.empty()){ cv::cvtColor(_img_eq_rgb,tmp,CV_RGB2BGR); cv::imwrite("egalisation_rgb.jpg",tmp);} + if (!_img_eq_rgb.empty()){ cv::cvtColor(_img_eq_rgb,tmp,COLOR_RGB2BGR); cv::imwrite("egalisation_rgb.jpg",tmp);} - if (!_img_eq_rgb1.empty()){ cv::cvtColor(_img_eq_rgb1,tmp,CV_RGB2BGR);; cv::imwrite("egalisation_rgb1.jpg",tmp);} + if (!_img_eq_rgb1.empty()){ cv::cvtColor(_img_eq_rgb1,tmp,COLOR_RGB2BGR);; cv::imwrite("egalisation_rgb1.jpg",tmp);} } void cvImage::keyPressEvent(QKeyEvent* event) @@ -287,14 +287,14 @@ void cvImage::calculHist(cv::Mat& image , int* hist) hist[image.data[i]]++; } -void cvImage::calculHist3(const cv::vector& image , int* hist) +void cvImage::calculHist3(const std::vector& image , int* hist) { int i,p; /* initialisation de l'histogramme a 0*/ for(i = 0; i < 256;i++) hist[i]=0; /* calcule des valeur de l'histogramme */ - // for(cv::vector::iterator i = mv.begin(); i != mv.end();i++) + // for(std::vector::iterator i = mv.begin(); i != mv.end();i++) for(p = 0; p < image[0].cols*image[0].rows; p++) hist[(image[0].data[p]+image[1].data[p]+image[2].data[p])/3]++; } @@ -322,7 +322,7 @@ void cvImage::egalizhist(cv::Mat& imSrc, cv::Mat& imDst) } -void cvImage::egalizhist3(const cv::vector& imSrc, cv::vector& imDst) +void cvImage::egalizhist3(const std::vector& imSrc, std::vector& imDst) { int i; double n; @@ -364,24 +364,14 @@ void cvImage::_egalizeH() if (_img.empty()) return; - cv::vector mv,v;//[_img.channels()]; + std::vector mv,v;//[_img.channels()]; cv::split(_img,mv); - for(cv::vector::iterator i = mv.begin(); i != mv.end();i++) + for(std::vector::iterator i = mv.begin(); i != mv.end();i++) egalizhist( *i, *i); cv::Mat merge; cv::merge(mv,merge); _img_eq_rgb=merge; -/* - cv::Mat hsv; - cv::cvtColor(merge,hsv,CV_RGB2HSV); - cv::vector mv_tmp; - cv::split(hsv,mv_tmp); - hsv=mv_tmp[0]; - mv_tmp[0]=mv_tmp[2]; - mv_tmp[2]=hsv; - cv::merge(mv_tmp,hsv); - cv::hconcat(merge,hsv,merge); -*/ + if(_image) delete _image; @@ -402,26 +392,16 @@ void cvImage::_egalizeH3() if (_img.empty()) return; - cv::vector mv_src, mv_dst; + std::vector mv_src, mv_dst; cv::split(_img,mv_src); cv::split(_img,mv_dst); - // for(cv::vector::iterator i = mv.begin(); i != mv.end();i++) + // for(std::vector::iterator i = mv.begin(); i != mv.end();i++) //egalizhist( *i, *i); egalizhist3(mv_src,mv_dst); cv::Mat merge; cv::merge(mv_dst,merge); _img_eq_rgb1=merge; -/* - cv::Mat hsv; - cv::cvtColor(merge,hsv,CV_RGB2HSV); - cv::vector mv_tmp; - cv::split(hsv,mv_tmp); - hsv=mv_tmp[0]; - mv_tmp[0]=mv_tmp[2]; - mv_tmp[2]=hsv; - cv::merge(mv_tmp,hsv); - cv::hconcat(merge,hsv,merge); - *///cv::cvtColor(_imBin,imBinair,CV_GRAY2BGR); + if(_image) delete _image; @@ -439,9 +419,9 @@ void cvImage::_egalizeH2(){ return; cv::Mat src,hsv; - cv::cvtColor(_img, src, CV_RGB2BGR); + cv::cvtColor(_img, src, COLOR_RGB2BGR); - cv::cvtColor(src, hsv, CV_BGR2HSV); + cv::cvtColor(src, hsv, COLOR_BGR2HSV); // Quantize the hue to 30 levels // and the saturation to 32 levels @@ -475,18 +455,12 @@ void cvImage::_egalizeH2(){ cv::rectangle( histImg, cv::Point(h*scale, s*scale), cv::Point( (h+1)*scale - 1, (s+1)*scale - 1), cv::Scalar::all(intensity), - CV_FILLED ); + cv::FILLED ); } _image = new QImage( src.data,src.size().width, src.size().height, src.step, QImage::Format_RGB888); - /* cv::namedWindow( "Source", 1 ); - cv::imshow( "Source", src ); - cv::namedWindow( "H-S Histogram", 1 ); - cv::imshow( "H-S Histogram", histImg ); - *///waitKey(); - } void cvImage::_histcalc(){ @@ -500,7 +474,7 @@ void cvImage::_histcalc(){ /// Separate the image in 3 places ( B, G and R ) - vector bgr_planes; + std::vector bgr_planes; split( src, bgr_planes ); /// Establish the number of bins @@ -544,10 +518,5 @@ void cvImage::_histcalc(){ Scalar( 0, 0, 255), 2, 8, 0 ); } - /// Display - // namedWindow("calcHist Demo", CV_WINDOW_AUTOSIZE ); - // imshow("calcHist Demo", histImage ); - -//_image = new QImage( histImage.data,histImage.size().width, histImage.size().height, histImage.step, QImage::Format_RGB888); } diff --git a/color-space/cvImage.h b/color-space/cvImage.h index 1a1047d..1ab3946 100644 --- a/color-space/cvImage.h +++ b/color-space/cvImage.h @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include @@ -16,8 +16,9 @@ #include #include #include +#include -#include +#include #include"cvtab.h" class cvImage : public QMainWindow { @@ -39,8 +40,8 @@ public: /* fonction a rendre extern (stactic)*/ void calculHist(cv::Mat& image , int* hist); void egalizhist(cv::Mat& imSrc, cv::Mat& imDst); - void calculHist3(const cv::vector& image , int* hist); - void egalizhist3(const cv::vector& imSrc, cv::vector& imDst); + void calculHist3(const std::vector& image , int* hist); + void egalizhist3(const std::vector& imSrc, std::vector& imDst); private: QMenuBar _menu_bar; QMenu* _menu; diff --git a/color-space/main.cpp b/color-space/main.cpp index 44e431d..16607a2 100644 --- a/color-space/main.cpp +++ b/color-space/main.cpp @@ -7,9 +7,13 @@ * Or to read the human-readable summary of the license: * https://creativecommons.org/licenses/by-sa/2.5/ */ +#include +#include + + #include "cvImage.h" -#include + int main(int argc, char* argv[]) { diff --git a/color-space/prj.pro b/color-space/prj.pro index 16328e8..7e799cb 100644 --- a/color-space/prj.pro +++ b/color-space/prj.pro @@ -1,17 +1,19 @@ TEMPLATE = app -QT += core gui opengl +QT += core gui opengl widgets -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +#[[ +#greaterThan(QT_MAJOR_VERSION, 4): QT += widgets -contains(QT_VERSION, ^5\\.[0-8]\\..*) { - message("* Using Qt $${QT_VERSION}.") - QT += widgets +#contains(QT_VERSION, ^5\\.[0-8]\\..*) { +# message("* Using Qt $${QT_VERSION}.") +# QT += core gui opengl # On my system I have to specify g++ as compiler else it will use clang++ by default #QMAKE_CXX=g++ #QMAKE_CC=gcc -} +#} +#1]] SOURCES += \ main.cpp \ @@ -27,7 +29,7 @@ HEADERS += \ ## OpenCV settings for Unix/Linux unix:!mac { message("* Using settings for Unix/Linux.") - INCLUDEPATH += /usr/local/include/opencv + INCLUDEPATH += /usr/local/include/opencv4 LIBS += -L/usr/local/lib/ \ -lopencv_core \