Skip to content
Snippets Groups Projects
Commit e0079671 authored by simon.fanetti's avatar simon.fanetti
Browse files

cleaning

parent a0273422
No related branches found
No related tags found
No related merge requests found
......@@ -5,8 +5,7 @@
#define ESCAPE_CHAR 27
class Beamer
{
class Beamer{
private:
const char *BEAMER_POSITION_FILE = "./beamer.dat";
cv::Point3f beamerPosition;
......@@ -28,5 +27,6 @@ public:
int findBeamerFrom(Camera camera);
void printPosition();
};
#endif
......@@ -5,19 +5,22 @@
#include "beamer.h"
#include "camera.h"
class BeamerProjection
{
class BeamerProjection{
private:
const char *wndname = (char *)"Sandbox";
cv::Mat adjustingMatrix;
cv::Point2i adjustPixel(int i, int j, float z, Camera camera, cv::Point3f beamer);
public:
BeamerProjection();
cv::Point2i rotatePixel(cv::Point2i pixel);
void adjustFrame(cv::Mat &depth, cv::Mat &src, cv::Mat &dst, Camera camera, cv::Point3f beamer);
void setAdjustingMatrix(cv::Mat matrix){ matrix.clone(); }
cv::Mat getAdjustingMatrix(){ return adjustingMatrix.clone(); }
cv::Point2i rotatePixel(cv::Point2i pixel);
void adjustFrame(cv::Mat &depth, cv::Mat &src, cv::Mat &dst, Camera camera, cv::Point3f beamer);
void printAdjustingMatrix();
};
#endif
\ No newline at end of file
......@@ -5,13 +5,12 @@
#include <librealsense2/rsutil.h>
#include <opencv2/opencv.hpp>
// camera definition : 640x480
// camera resolution : 640x480
class Camera{
private:
rs2::spatial_filter spatFilter;
rs2::temporal_filter tempFilter;
rs2::decimation_filter decFilter;
rs2::config cfg;
rs2::pipeline pipe;
rs2::pipeline_profile profile;
......@@ -21,16 +20,13 @@ class Camera{
cv::Mat matRGB;
cv::Rect croppingMask;
void flipMat(cv::Mat &m);
void filterDepthFrame(rs2::depth_frame &frameDepth);
cv::Mat captureFrame();
cv::Mat getAverageFrame(int numberFrame);
public:
Camera();
cv::Mat getDepthFrameAlign(){ return matDepth; };
cv::Mat getRGBFrameAlign(){ return matRGB.clone(); };
cv::Mat getDepthFrame(){ return matDepth; };
cv::Mat getRGBFrame(){ return matRGB.clone(); };
void setCroppingMask(cv::Rect mask){ croppingMask = mask; };
cv::Rect getCroppingMask(){ return croppingMask; };
......@@ -39,7 +35,7 @@ class Camera{
void stop();
cv::Point3f deprojectPixelToPoint(float coord[], float z1);
cv::Point2i projectPointToPixel(cv::Point3f point3D);
void captureFramesAlign();
void captureFrame();
void printCroppingMask();
};
......
......@@ -24,7 +24,6 @@ class Sandbox{
cv::Mat getRGBFrame();
cv::Mat getDepthFrame();
cv::Mat* adjustProjection(cv::Mat* frame);
void showImage(cv::Mat* image);
int loadConfig();
......
......@@ -24,7 +24,6 @@ class Sandbox{
cv::Mat getRGBFrame();
cv::Mat getDepthFrame();
cv::Mat* adjustProjection(cv::Mat* frame);
void showImage(cv::Mat* image);
int loadConfig();
......
......@@ -44,9 +44,9 @@ int Beamer::findBeamerFrom(Camera camera)
while (capturedPoints.size() < nbPoint){
// capture frame
camera.captureFramesAlign();
depth = camera.getDepthFrameAlign();
rgb = camera.getRGBFrameAlign();
camera.captureFrame();
depth = camera.getDepthFrame();
rgb = camera.getRGBFrame();
// Look for the circle target
std::vector<int> crc = findCercleZ(rgb);
......@@ -80,16 +80,11 @@ int Beamer::findBeamerFrom(Camera camera)
frameImage.setTo(cv::Scalar(0, 0, 0));
}
// check for the end
if (capturedPoints.size() == nbPoint){
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);
directions.push_back(cv::Point3d(line[3] * fact, line[4] * fact, line[5] * fact));
bases.push_back(cv::Point3d(line[0], line[1], line[2]));
}
}
camera.stop();
cv::destroyAllWindows();
......@@ -208,7 +203,6 @@ std::vector<int> Beamer::findCercleZ(cv::Mat &rgb)
cv::Point3d Beamer::approximatePosition(std::vector<cv::Point3d> directions, std::vector<cv::Point3d> bases){
// Regression Linéaire
cv::Point3d pa, pb;
double mua;
double mub;
......
......@@ -14,7 +14,10 @@ Camera::Camera() {
void Camera::start(){
rs2::log_to_console(RS2_LOG_SEVERITY_ERROR);
std::remove("./camera.logs");
rs2::log_to_file(RS2_LOG_SEVERITY_DEBUG, "./camera.logs");
//rs2::log_to_console(RS2_LOG_SEVERITY_DEBUG);//RS2_LOG_SEVERITY_ERROR);
spatFilter.set_option(RS2_OPTION_HOLES_FILL, 5);
//cfg.enable_device_from_file("../input/flux/flux5.bag");
profile = pipe.start(cfg);
......@@ -37,7 +40,6 @@ void Camera::warmingUp()
{
rs2::frameset data = pipe.wait_for_frames();
auto frameDepth = data.get_depth_frame();
//frameDepth = decFilter.process(frameDepth);
frameDepth = spatFilter.process(frameDepth);
frameDepth = tempFilter.process(frameDepth);
}
......@@ -49,7 +51,7 @@ void Camera::stop(){
}
void Camera::captureFramesAlign(){
void Camera::captureFrame(){
rs2::align align(RS2_STREAM_DEPTH);
auto frameset = pipe.wait_for_frames();
......@@ -94,35 +96,9 @@ void Camera::printCroppingMask(){
*/
cv::Mat Camera::captureFrame(){
auto frame = pipe.wait_for_frames();
auto frameDepth = frame.get_depth_frame();
filterDepthFrame(frameDepth);
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::filterDepthFrame(rs2::depth_frame &frameDepth)
{
// frameDepth = decFilter.process(frameDepth);
frameDepth = spatFilter.process(frameDepth);
frameDepth = tempFilter.process(frameDepth);
intrinsics = frameDepth.get_profile().as<rs2::video_stream_profile>().get_intrinsics();
}
cv::Mat Camera::getAverageFrame(int numberFrame){
cv::Mat averageFrame;
Camera::captureFrame().copyTo(averageFrame);
for (int i = 1; i <= numberFrame; i++)
{
averageFrame *= i;
add(averageFrame, Camera::captureFrame(), averageFrame);
averageFrame /= i + 1;
}
return averageFrame;
}
......@@ -15,13 +15,13 @@ Sandbox::Sandbox(){
*/
cv::Mat Sandbox::getRGBFrame(){
camera.captureFramesAlign();
return camera.getRGBFrameAlign()(camera.getCroppingMask());
camera.captureFrame();
return camera.getRGBFrame()(camera.getCroppingMask());
}
cv::Mat Sandbox::getDepthFrame(){
camera.captureFramesAlign();
return camera.getDepthFrameAlign()(camera.getCroppingMask());
camera.captureFrame();
return camera.getDepthFrame()(camera.getCroppingMask());
}
......
......@@ -33,12 +33,12 @@ int SandboxSetup::setupBeamerResolution(){
int width = 0;
int height = 0;
std::cout << "Enter width of the beamer's resolution :" << std::endl;
std::cout << "Enter width of the frame projected :" << std::endl;
std::cin >> width;
if(std::cin.fail()){
return 1;
}
std::cout << "Enter height of the beamer's resolution :" << std::endl;
std::cout << "Enter height of the frame projected :" << std::endl;
std::cin >> height;
if(std::cin.fail()){
return 1;
......@@ -69,9 +69,9 @@ int SandboxSetup::setupProjection(){
// Take picture
camera.start(); // 1 seconde of warming up
camera.captureFramesAlign();
cv::Mat frameData = camera.getDepthFrameAlign();
cv::Mat coloredFrame = camera.getRGBFrameAlign();
camera.captureFrame();
cv::Mat frameData = camera.getDepthFrame();
cv::Mat coloredFrame = camera.getRGBFrame();
cv::Size s = frameData.size();
cv::Point center(s.width / 2, s.height / 2);
camera.stop();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment