-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRegionGrowingBilateralFilter.cpp
More file actions
45 lines (42 loc) · 1.72 KB
/
RegionGrowingBilateralFilter.cpp
File metadata and controls
45 lines (42 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "RegionGrowingBilateralFilter.h"
#include "SuperpixelSegmentation\DepthAdaptiveSuperpixel.h"
#include "EdgeRefinedSuperpixel\EdgeRefinedSuperpixel.h"
RegionGrowingBilateralFilter::RegionGrowingBilateralFilter(int width, int height):
Width(width),
Height(height){
DASP = new DepthAdaptiveSuperpixel(width, height);
SP = new DepthAdaptiveSuperpixel(width, height);
ERS = new EdgeRefinedSuperpixel(width, height);
}
RegionGrowingBilateralFilter::~RegionGrowingBilateralFilter(){
delete DASP;
DASP = 0;
delete SP;
SP = 0;
delete ERS;
ERS = 0;
}
void RegionGrowingBilateralFilter::SetParametor(int rows, int cols, cv::Mat_<double> intrinsic){
sp_rows = rows;
sp_cols = cols;
SP->SetParametor(sp_rows, sp_cols, intrinsic);
DASP->SetParametor(sp_rows, sp_cols, intrinsic);
}
void RegionGrowingBilateralFilter::Process(float* depth_device, float3* points_device, cv::gpu::GpuMat color_device){
SP->Segmentation(color_device, points_device, 200.0f, 40.0f, 0.0f, 1);
DASP->Segmentation(color_device, points_device, 100.0f, 20.0f, 200.0f, 1);
//edge refinement
ERS->EdgeRefining(SP->getLabelDevice(), DASP->getLabelDevice(), depth_device, color_device);
//cv::Mat_<cv::Vec3b> color(Height, Width);
//color_device.download(color);
//cv::imshow("color_segmentation", SP->getSegmentedImage(color, SuperpixelSegmentation::Line));
//cv::imshow("color_segmentation", SP->getRandomColorImage());
//cv::imshow("depth_segmentation", DASP->getRandomColorImage());
//cv::imshow("enhanced_segmenatation", ERS->getRandomColorImage());
}
float* RegionGrowingBilateralFilter::getRefinedDepth_Device(){
return ERS->getRefinedDepth_Device();
}
float* RegionGrowingBilateralFilter::getRefinedDepth_Host(){
return ERS->getRefinedDepth_Host();
}