From 0a3db2f06eedb21e2348fac388f506b74318710a Mon Sep 17 00:00:00 2001 From: "simon.fanetti" <simon.fanetti@etu.hesge.ch> Date: Wed, 6 May 2020 19:52:05 +0200 Subject: [PATCH] clear namespaces --- inc/beamer.h | 5 +- inc/sandbox.h | 1 - sandbox.h | 1 - src/components/beamer.cpp | 98 ++++++++++++++--------------- src/components/beamerProjection.cpp | 41 ++++++------ src/components/camera.cpp | 29 +++++---- src/lib/sandbox.cpp | 5 -- src/lib/sandboxSetup.cpp | 1 - src/tools/borderedit.cpp | 20 +++--- 9 files changed, 91 insertions(+), 110 deletions(-) diff --git a/inc/beamer.h b/inc/beamer.h index 6ca7d60..68fd4ad 100644 --- a/inc/beamer.h +++ b/inc/beamer.h @@ -3,6 +3,8 @@ #include <opencv2/opencv.hpp> #include "camera.h" +#define ESCAPE_CHAR 27 + class Beamer { private: @@ -12,9 +14,6 @@ private: std::vector<int> findCercleZ(cv::Mat &rgb); cv::Point3f beamerPosition; cv::Size resolution = cv::Size(1,1); - - // int width = 1400; - // int height = 1050; public: Beamer(); diff --git a/inc/sandbox.h b/inc/sandbox.h index b6c62b4..c308469 100644 --- a/inc/sandbox.h +++ b/inc/sandbox.h @@ -11,7 +11,6 @@ class Sandbox { private: - static const int ESCAPE_CHAR = 27; char *defaultConfigFilePath = (char *)"./sandbox_conf.yaml"; char *defaultWindowsName = (char*) "ShowApp"; BeamerProjection projection; diff --git a/sandbox.h b/sandbox.h index b6c62b4..c308469 100644 --- a/sandbox.h +++ b/sandbox.h @@ -11,7 +11,6 @@ class Sandbox { private: - static const int ESCAPE_CHAR = 27; char *defaultConfigFilePath = (char *)"./sandbox_conf.yaml"; char *defaultWindowsName = (char*) "ShowApp"; BeamerProjection projection; diff --git a/src/components/beamer.cpp b/src/components/beamer.cpp index 92b3145..f163152 100644 --- a/src/components/beamer.cpp +++ b/src/components/beamer.cpp @@ -1,9 +1,5 @@ #include "../../inc/beamer.h" -using namespace cv; -using namespace std; -#define ESCAPE_CHAR 27 - /* Calculate the line segment PaPb that is the shortest route between two lines P1P2 and P3P4. Calculate also the values of mua and mub where @@ -19,7 +15,7 @@ typedef struct } XYZ; int LineLineIntersect( - Point3d p1, Point3d p2, Point3d p3, Point3d p4, Point3d *pa, Point3d *pb, + cv::Point3d p1, cv::Point3d p2, cv::Point3d p3, cv::Point3d p4, cv::Point3d *pa, cv::Point3d *pb, double *mua, double *mub) { @@ -68,24 +64,24 @@ int LineLineIntersect( Beamer::Beamer(){ //position par défaut - beamerPosition = Point3f(0.0f, 0.265f, -0.205f); + beamerPosition = cv::Point3f(0.0f, 0.265f, -0.205f); } -vector<int> Beamer::findCercleZ(Mat &rgb) +std::vector<int> Beamer::findCercleZ(cv::Mat &rgb) { - Mat src_gray; - cvtColor(rgb, src_gray, CV_BGR2GRAY); + cv::Mat src_gray; + cv::cvtColor(rgb, src_gray, CV_BGR2GRAY); /// Reduce the noise so we avoid false circle detection - GaussianBlur(src_gray, src_gray, Size(9, 9), 2, 2); - vector<Vec3f> circles; + cv::GaussianBlur(src_gray, src_gray, cv::Size(9, 9), 2, 2); + std::vector<cv::Vec3f> circles; circles.clear(); /// Apply the Hough Transform to find the circles //source, output, method, inverse ratio of resolution, Minimum distance between detected centers, threeshold canny, threeshold center, min radius, max radius - HoughCircles(src_gray, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows / 4, 75, 50, 0, 0); + cv::HoughCircles(src_gray, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows / 4, 75, 50, 0, 0); //doit tester si le cercle est bon (rayon); - vector<int> result; + std::vector<int> result; if (!circles.empty()) { for (int i = 0; i < 3; i++) @@ -99,21 +95,21 @@ vector<int> Beamer::findCercleZ(Mat &rgb) void Beamer::findBeamerFrom(Camera camera) { char wname[] = "FindBeamer"; - namedWindow(wname, CV_WINDOW_NORMAL); - setWindowProperty(wname, CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN); - Mat depth; - Mat rgb; - Mat frameImage(resolution, CV_8UC3, Scalar(0, 0, 0)); + cv::namedWindow(wname, CV_WINDOW_NORMAL); + cv::setWindowProperty(wname, CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN); + cv::Mat depth; + cv::Mat rgb; + cv::Mat frameImage(resolution, CV_8UC3, cv::Scalar(0, 0, 0)); // Setup cross for calibration - vector<Point> points; - points.push_back( Point( getWidth() * 5/14, getHeight() * 5/14)); - points.push_back( Point( getWidth() * 5/7 , getHeight() * 3/14)); - points.push_back( Point( getWidth() * 3/14, getHeight() * 4/7 )); + std::vector<cv::Point> points; + points.push_back( cv::Point( getWidth() * 5/14, getHeight() * 5/14)); + points.push_back( cv::Point( getWidth() * 5/7 , getHeight() * 3/14)); + points.push_back( cv::Point( getWidth() * 3/14, getHeight() * 4/7 )); unsigned int nbPoint = 3; //number of point to calculate 1 vector - vector<Point3d> points1; //vectors calculate for each point - vector<Point3d> points2; //1 point for each vector (to calculate constante d) + std::vector<cv::Point3d> points1; //vectors calculate for each point + std::vector<cv::Point3d> points2; //1 point for each vector (to calculate constante d) double fact = -20.0; @@ -121,51 +117,51 @@ void Beamer::findBeamerFrom(Camera camera) for (int i = 0; i < (int)points.size(); i++) { - vector<Point3f> capturedPoints; - Point p = points[i]; + std::vector<cv::Point3f> capturedPoints; + cv::Point p = points[i]; while (1) { camera.captureFramesAlign(); depth = camera.getDepthFrameAlign(); rgb = camera.getRGBFrameAlign(); - Scalar color; - vector<int> crc = findCercleZ(rgb); + cv::Scalar color; + std::vector<int> crc = findCercleZ(rgb); if (!crc.empty()) - color = Scalar(0, 255, 0); + color = cv::Scalar(0, 255, 0); else - color = Scalar(0, 0, 255); - - line(frameImage, Point(p.x, 0), Point(p.x, frameImage.rows - 1), color, 4); - line(frameImage, Point(0, p.y), Point(frameImage.cols - 1, p.y), color, 4); - putText( frameImage, - to_string(capturedPoints.size() + 1) + "/" + to_string(nbPoint), - Point( getWidth()/2, getHeight()/2 ), - FONT_HERSHEY_SIMPLEX, + color = cv::Scalar(0, 0, 255); + + cv::line(frameImage, cv::Point(p.x, 0), cv::Point(p.x, frameImage.rows - 1), color, 4); + cv::line(frameImage, cv::Point(0, p.y), cv::Point(frameImage.cols - 1, p.y), color, 4); + cv::putText( frameImage, + std::to_string(capturedPoints.size() + 1) + "/" + std::to_string(nbPoint), + cv::Point( getWidth()/2, getHeight()/2 ), + cv::FONT_HERSHEY_SIMPLEX, 1, - Scalar(255, 255, 255)); + cv::Scalar(255, 255, 255)); cv::imshow(wname, frameImage); - char keyCode = waitKey(500); + char keyCode = cv::waitKey(500); if (keyCode == ESCAPE_CHAR) exit(0); else if (keyCode == ' ' && !crc.empty()) { float coord[2] = {(float)crc[0], (float)crc[1]}; float z = static_cast<float>(depth.at<uint16_t>(crc[1], crc[0])); - Point3f p = camera.deprojectPixelToPoint(coord, z / 1000.0); + cv::Point3f p = camera.deprojectPixelToPoint(coord, z / 1000.0); capturedPoints.push_back(p); } if (capturedPoints.size() == nbPoint) { - Vec3f dir(capturedPoints[0].x - capturedPoints[1].x, capturedPoints[0].y - capturedPoints[1].y, capturedPoints[0].z - capturedPoints[1].z); - Vec6f line; - fitLine(capturedPoints, line, CV_DIST_L2, 0, 0.01, 0.01); - points1.push_back(Point3d(line[3] * fact, line[4] * fact, line[5] * fact)); - points2.push_back(Point3d(line[0], line[1], line[2])); - frameImage.setTo(Scalar(0, 0, 0)); + cv::Vec3f dir(capturedPoints[0].x - capturedPoints[1].x, capturedPoints[0].y - capturedPoints[1].y, capturedPoints[0].z - capturedPoints[1].z); + cv::Vec6f line; + cv::fitLine(capturedPoints, line, CV_DIST_L2, 0, 0.01, 0.01); + points1.push_back(cv::Point3d(line[3] * fact, line[4] * fact, line[5] * fact)); + points2.push_back(cv::Point3d(line[0], line[1], line[2])); + frameImage.setTo(cv::Scalar(0, 0, 0)); break; } - frameImage.setTo(Scalar(0, 0, 0)); + frameImage.setTo(cv::Scalar(0, 0, 0)); } } @@ -173,10 +169,10 @@ void Beamer::findBeamerFrom(Camera camera) // Regression Linéaire - Point3d pa, pb; + cv::Point3d pa, pb; double mua; double mub; - vector<Point3d> beamerPoints; + std::vector<cv::Point3d> beamerPoints; LineLineIntersect(points1[0], points2[0], points1[1], points2[1], &pa, &pb, &mua, &mub); beamerPoints.push_back(pa); beamerPoints.push_back(pb); @@ -187,7 +183,7 @@ void Beamer::findBeamerFrom(Camera camera) beamerPoints.push_back(pa); beamerPoints.push_back(pb); - Point3d beamerPoint(0.0, 0.0, 0.0); + cv::Point3d beamerPoint(0.0, 0.0, 0.0); for (unsigned int i = 0; i < beamerPoints.size(); i++) { beamerPoint += beamerPoints[i]; @@ -200,7 +196,7 @@ void Beamer::findBeamerFrom(Camera camera) beamerPosition.y = (float)beamerPoint.y; beamerPosition.z = (float)beamerPoint.z; - destroyAllWindows(); + cv::destroyAllWindows(); } diff --git a/src/components/beamerProjection.cpp b/src/components/beamerProjection.cpp index 527ddc0..6cabc7d 100644 --- a/src/components/beamerProjection.cpp +++ b/src/components/beamerProjection.cpp @@ -1,27 +1,24 @@ #include "../../inc/beamerProjection.h" -using namespace cv; -using namespace std; - BeamerProjection::BeamerProjection() { - adjustingMatrix = getRotationMatrix2D(Point(0, 0), 0, 1); + adjustingMatrix = cv::getRotationMatrix2D(cv::Point(0, 0), 0, 1); } -Point2i BeamerProjection::rotatePixel(Point2i pixel) +cv::Point2i BeamerProjection::rotatePixel(cv::Point2i pixel) { - Mat tmp = (Mat_<Vec2f>(1, 1) << Vec2f(pixel.x, pixel.y)); - transform(tmp, tmp, adjustingMatrix); - return Point2i(tmp.at<Vec2f>(0, 0)); + cv::Mat tmp = (cv::Mat_<cv::Vec2f>(1, 1) << cv::Vec2f(pixel.x, pixel.y)); + cv::transform(tmp, tmp, adjustingMatrix); + return cv::Point2i(tmp.at<cv::Vec2f>(0, 0)); } -Point2i BeamerProjection::adjustPixel(int i, int j, float z, Camera camera, Point3f beamer){ +cv::Point2i BeamerProjection::adjustPixel(int i, int j, float z, Camera camera, cv::Point3f beamer){ //pixel to point 3d float coord[2] = {static_cast<float>(j), static_cast<float>(i)}; - Point3f p = camera.deprojectPixelToPoint(coord, z / 1000.0); + cv::Point3f p = camera.deprojectPixelToPoint(coord, z / 1000.0); //calcul vector point to beamer - Vec3f dir(beamer.x - p.x, beamer.y - p.y, beamer.z - p.z); + cv::Vec3f dir(beamer.x - p.x, beamer.y - p.y, beamer.z - p.z); float prop = (0.99 - p.z) / dir[2]; p.x += dir[0] * prop; p.y += dir[1] * prop; @@ -30,7 +27,7 @@ Point2i BeamerProjection::adjustPixel(int i, int j, float z, Camera camera, Poin return camera.projectPointToPixel(p); } -void BeamerProjection::adjustFrame(cv::Mat &src, cv::Mat &dst, Camera camera, Point3f beamer) +void BeamerProjection::adjustFrame(cv::Mat &src, cv::Mat &dst, Camera camera, cv::Point3f beamer) { //int64_t t1 = getTickCount(); //transformation on all pixel @@ -38,19 +35,19 @@ void BeamerProjection::adjustFrame(cv::Mat &src, cv::Mat &dst, Camera camera, Po { for (int j = 0; j < src.cols; j++) { - Point pixelIJ(j, i); - Point pixel = adjustPixel(i, j, static_cast<float>(src.at<uint16_t>(pixelIJ)), camera, beamer); + cv::Point pixelIJ(j, i); + cv::Point pixel = adjustPixel(i, j, static_cast<float>(src.at<uint16_t>(pixelIJ)), camera, beamer); if (pixel.x < dst.cols && pixel.y < dst.rows && pixel.x >= 0 && pixel.y >= 0) dst.at<uint16_t>(pixel) = src.at<uint16_t>(pixelIJ); } } //cout << "temps de calcul: " << (getTickCount() - t1) / getTickFrequency() << endl; - warpAffine(dst, dst, adjustingMatrix, dst.size()); + cv::warpAffine(dst, dst, adjustingMatrix, dst.size()); // medianBlur(dst, dst, 3); } -void BeamerProjection::adjustFrame(cv::Mat &depth, cv::Mat &src, cv::Mat &dst, Camera camera, Point3f beamer){ +void BeamerProjection::adjustFrame(cv::Mat &depth, cv::Mat &src, cv::Mat &dst, Camera camera, cv::Point3f beamer){ int nbChannel = src.channels(); //transformation on all pixel @@ -59,21 +56,21 @@ void BeamerProjection::adjustFrame(cv::Mat &depth, cv::Mat &src, cv::Mat &dst, C { for (int j = 0; j < src.cols; j++) { - Point pixelIJ(j, i); - Point pixel = adjustPixel(i, j, static_cast<float>(depth.at<uint16_t>(pixelIJ)), camera, beamer); + cv::Point pixelIJ(j, i); + cv::Point pixel = adjustPixel(i, j, static_cast<float>(depth.at<uint16_t>(pixelIJ)), camera, beamer); if (pixel.x < dst.cols && pixel.y < dst.rows && pixel.x >= 0 && pixel.y >= 0) { if (nbChannel == 1) dst.at<char>(pixel) = src.at<char>(pixelIJ); else if (nbChannel == 3) - dst.at<Vec3b>(pixel) = src.at<Vec3b>(pixelIJ); + dst.at<cv::Vec3b>(pixel) = src.at<cv::Vec3b>(pixelIJ); } } } //cout << "temps de calcul: " << (getTickCount() - t1) / getTickFrequency() << endl; - warpAffine(dst, dst, adjustingMatrix, dst.size()); - dilate(dst, dst, Mat(), Point(-1, -1), 2, 1, 1); - erode(dst, dst, Mat(), Point(-1, -1), 2, 1, 1); + cv::warpAffine(dst, dst, adjustingMatrix, dst.size()); + cv::dilate(dst, dst, cv::Mat(), cv::Point(-1, -1), 2, 1, 1); + cv::erode(dst, dst, cv::Mat(), cv::Point(-1, -1), 2, 1, 1); } diff --git a/src/components/camera.cpp b/src/components/camera.cpp index fe19cd8..133ad5c 100644 --- a/src/components/camera.cpp +++ b/src/components/camera.cpp @@ -1,5 +1,4 @@ #include "../../inc/camera.h" -using namespace cv; Camera::Camera() { @@ -18,9 +17,9 @@ void Camera::warmingUp() } } -Mat Camera::coloredFrame(Mat frameDepth) +cv::Mat Camera::coloredFrame(cv::Mat frameDepth) { - Mat depthFrameColored(frameDepth.size(), CV_8U); + cv::Mat depthFrameColored(frameDepth.size(), CV_8U); int width = frameDepth.cols, height = frameDepth.rows; static uint32_t histogram[0x10000]; memset(histogram, 0, sizeof(histogram)); @@ -51,18 +50,18 @@ Mat Camera::coloredFrame(Mat frameDepth) } } } - bitwise_not(depthFrameColored, depthFrameColored); //reverse colormap - applyColorMap(depthFrameColored, depthFrameColored, cv::COLORMAP_JET); + cv::bitwise_not(depthFrameColored, depthFrameColored); //reverse colormap + cv::applyColorMap(depthFrameColored, depthFrameColored, cv::COLORMAP_JET); depthFrameColored.setTo(cv::Scalar(0, 0, 0), (frameDepth == 0)); return depthFrameColored; } -Mat Camera::captureFrame() +cv::Mat Camera::captureFrame() { auto frame = pipe.wait_for_frames(); auto frameDepth = frame.get_depth_frame(); filterDepthFrame(frameDepth); - Mat matFrame(Size(frameDepth.get_width(), frameDepth.get_height()), CV_16UC1, (void *)frameDepth.get_data(), Mat::AUTO_STEP); + cv::Mat matFrame(cv::Size(frameDepth.get_width(), frameDepth.get_height()), CV_16UC1, (void *)frameDepth.get_data(), cv::Mat::AUTO_STEP); return matFrame; } void Camera::captureFramesAlign() @@ -75,8 +74,8 @@ void Camera::captureFramesAlign() rs2::video_frame color_frame = frameset.get_color_frame(); rs2::depth_frame depth_frame = frameset.get_depth_frame(); filterDepthFrame(depth_frame); - matDepth = Mat(Size(depth_frame.get_width(), depth_frame.get_height()), CV_16UC1, (void *)depth_frame.get_data(), Mat::AUTO_STEP); - Mat(Size(color_frame.get_width(), color_frame.get_height()), CV_8UC3, (void *)color_frame.get_data(), Mat::AUTO_STEP).copyTo(matRGB); + matDepth = cv::Mat(cv::Size(depth_frame.get_width(), depth_frame.get_height()), CV_16UC1, (void *)depth_frame.get_data(), cv::Mat::AUTO_STEP); + cv::Mat(cv::Size(color_frame.get_width(), color_frame.get_height()), CV_8UC3, (void *)color_frame.get_data(), cv::Mat::AUTO_STEP).copyTo(matRGB); } void Camera::filterDepthFrame(rs2::depth_frame &frameDepth) @@ -86,9 +85,9 @@ void Camera::filterDepthFrame(rs2::depth_frame &frameDepth) frameDepth = tempFilter.process(frameDepth); intrinsics = frameDepth.get_profile().as<rs2::video_stream_profile>().get_intrinsics(); } -Mat Camera::getAverageFrame(int numberFrame) +cv::Mat Camera::getAverageFrame(int numberFrame) { - Mat averageFrame; + cv::Mat averageFrame; Camera::captureFrame().copyTo(averageFrame); for (int i = 1; i <= numberFrame; i++) { @@ -99,19 +98,19 @@ Mat Camera::getAverageFrame(int numberFrame) return averageFrame; } -Point3f Camera::deprojectPixelToPoint(float coord[], float z1) +cv::Point3f Camera::deprojectPixelToPoint(float coord[], float z1) { float p[3]; rs2_deproject_pixel_to_point(p, &intrinsics, coord, z1); - return Point3f(p[0], p[1], p[2]); + return cv::Point3f(p[0], p[1], p[2]); } -Point2i Camera::projectPointToPixel(Point3f point3D) +cv::Point2i Camera::projectPointToPixel(cv::Point3f point3D) { float point[3] = {point3D.x, point3D.y, point3D.z}; float pixel[2]; rs2_project_point_to_pixel(pixel, &intrinsics, point); - return Point2i(pixel[0], pixel[1]); + return cv::Point2i(pixel[0], pixel[1]); } void Camera::start() diff --git a/src/lib/sandbox.cpp b/src/lib/sandbox.cpp index e712fbe..7c9b677 100644 --- a/src/lib/sandbox.cpp +++ b/src/lib/sandbox.cpp @@ -1,9 +1,4 @@ #include "../../inc/sandbox.h" -#include <numeric> -#include <fstream> -#include <string> - -using namespace std; /* diff --git a/src/lib/sandboxSetup.cpp b/src/lib/sandboxSetup.cpp index bd8ac20..a69cece 100644 --- a/src/lib/sandboxSetup.cpp +++ b/src/lib/sandboxSetup.cpp @@ -1,7 +1,6 @@ #include "../../inc/sandboxSetup.h" - SandboxSetup::SandboxSetup(){ } diff --git a/src/tools/borderedit.cpp b/src/tools/borderedit.cpp index c4dd842..2d93ca6 100644 --- a/src/tools/borderedit.cpp +++ b/src/tools/borderedit.cpp @@ -1,16 +1,14 @@ #include "../../inc/borderedit.h" -using namespace std; -using namespace cv; -Mat BorderEdit::frameImage; +cv::Mat BorderEdit::frameImage; void BorderEdit::drawSquare(cv::Point *p, int n) { - Mat imageCopy = frameImage.clone(); - polylines(imageCopy, &p, &n, 1, true, Scalar(0, 255, 0), 1, LINE_AA); + cv::Mat imageCopy = frameImage.clone(); + polylines(imageCopy, &p, &n, 1, true, cv::Scalar(0, 255, 0), 1, cv::LINE_AA); imshow(wndname, imageCopy); } -int BorderEdit::findPoints(int x, int y, vector<Point> &posSandbox) +int BorderEdit::findPoints(int x, int y, std::vector<cv::Point> &posSandbox) { for (int i = 0; i < (int)posSandbox.size(); i++) { @@ -24,7 +22,7 @@ int BorderEdit::findPoints(int x, int y, vector<Point> &posSandbox) void BorderEdit::mouseHandler(int event, int x, int y, int, void *param) { static int selectedPoint = -1; - vector<Point> &posSandbox = *((vector<Point> *)param); + std::vector<cv::Point> &posSandbox = *((std::vector<cv::Point> *)param); switch (event) { case CV_EVENT_LBUTTONDOWN: //left button press @@ -51,11 +49,11 @@ void BorderEdit::mouseHandler(int event, int x, int y, int, void *param) } } -void BorderEdit::edit(Mat frame, vector<Point> *posSandbox) +void BorderEdit::edit(cv::Mat frame, std::vector<cv::Point> *posSandbox) { - namedWindow(wndname, CV_WINDOW_AUTOSIZE); + cv::namedWindow(wndname, CV_WINDOW_AUTOSIZE); frame.copyTo(frameImage); - setMouseCallback(wndname, BorderEdit::mouseHandler, (void *)posSandbox); + cv::setMouseCallback(wndname, BorderEdit::mouseHandler, (void *)posSandbox); BorderEdit::drawSquare(&posSandbox->at(0), (int)posSandbox->size()); - waitKey(0); + cv::waitKey(0); } \ No newline at end of file -- GitLab