minor changes, opencv cross-branch code
This commit is contained in:
parent
15fd3faa40
commit
2d63f60d43
@ -64,6 +64,7 @@ namespace cv
|
|||||||
class CV_EXPORTS Viz3d
|
class CV_EXPORTS Viz3d
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
typedef cv::viz::Color Color;
|
||||||
typedef void (*KeyboardCallback)(const KeyboardEvent&, void*);
|
typedef void (*KeyboardCallback)(const KeyboardEvent&, void*);
|
||||||
typedef void (*MouseCallback)(const MouseEvent&, void*);
|
typedef void (*MouseCallback)(const MouseEvent&, void*);
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ namespace cv
|
|||||||
class CV_EXPORTS WText : public Widget2D
|
class CV_EXPORTS WText : public Widget2D
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WText(const String &text, const Point2i &pos, int font_size = 10, const Color &color = Color::white());
|
WText(const String &text, const Point2i &pos, int font_size = 20, const Color &color = Color::white());
|
||||||
|
|
||||||
void setText(const String &text);
|
void setText(const String &text);
|
||||||
String getText() const;
|
String getText() const;
|
||||||
|
@ -124,7 +124,7 @@ struct cv::viz::WCloud::CreateCloudWidget
|
|||||||
cells->SetNumberOfTuples(nr_points);
|
cells->SetNumberOfTuples(nr_points);
|
||||||
vtkIdType *cell = cells->GetPointer(0);
|
vtkIdType *cell = cells->GetPointer(0);
|
||||||
// Fill it with 1s
|
// Fill it with 1s
|
||||||
std::fill_n(cell, nr_points * 2, 1);
|
std::fill(cell, cell + nr_points * 2, 1);
|
||||||
cell++;
|
cell++;
|
||||||
for (vtkIdType i = 0; i < nr_points; ++i, cell += 2)
|
for (vtkIdType i = 0; i < nr_points; ++i, cell += 2)
|
||||||
*cell = i;
|
*cell = i;
|
||||||
@ -155,8 +155,8 @@ cv::viz::WCloud::WCloud(InputArray _cloud, InputArray _colors)
|
|||||||
|
|
||||||
if (cloud.isContinuous() && colors.isContinuous())
|
if (cloud.isContinuous() && colors.isContinuous())
|
||||||
{
|
{
|
||||||
cloud.reshape(cloud.channels(), 1);
|
cloud = cloud.reshape(cloud.channels(), 1);
|
||||||
colors.reshape(colors.channels(), 1);
|
colors = colors.reshape(colors.channels(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
vtkIdType nr_points;
|
vtkIdType nr_points;
|
||||||
@ -307,7 +307,7 @@ struct cv::viz::WCloudCollection::CreateCloudWidget
|
|||||||
cells->SetNumberOfTuples(nr_points);
|
cells->SetNumberOfTuples(nr_points);
|
||||||
vtkIdType *cell = cells->GetPointer(0);
|
vtkIdType *cell = cells->GetPointer(0);
|
||||||
// Fill it with 1s
|
// Fill it with 1s
|
||||||
std::fill_n(cell, nr_points * 2, 1);
|
std::fill(cell, cell + nr_points * 2, 1);
|
||||||
cell++;
|
cell++;
|
||||||
for (vtkIdType i = 0; i < nr_points; ++i, cell += 2)
|
for (vtkIdType i = 0; i < nr_points; ++i, cell += 2)
|
||||||
*cell = i;
|
*cell = i;
|
||||||
@ -392,8 +392,8 @@ void cv::viz::WCloudCollection::addCloud(InputArray _cloud, InputArray _colors,
|
|||||||
|
|
||||||
if (cloud.isContinuous() && colors.isContinuous())
|
if (cloud.isContinuous() && colors.isContinuous())
|
||||||
{
|
{
|
||||||
cloud.reshape(cloud.channels(), 1);
|
cloud = cloud.reshape(cloud.channels(), 1);
|
||||||
colors.reshape(colors.channels(), 1);
|
colors = colors.reshape(colors.channels(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
vtkIdType nr_points;
|
vtkIdType nr_points;
|
||||||
|
@ -236,7 +236,7 @@ cv::viz::InteractorStyle::OnKeyDown()
|
|||||||
"\n"
|
"\n"
|
||||||
" j, J : take a .PNG snapshot of the current window view\n"
|
" j, J : take a .PNG snapshot of the current window view\n"
|
||||||
" c, C : display current camera/window parameters\n"
|
" c, C : display current camera/window parameters\n"
|
||||||
" f, F : fly to point mode\n"
|
" f, F : fly to point mode, hold the key and move mouse where to fly\n"
|
||||||
"\n"
|
"\n"
|
||||||
" e, E : exit the interactor\n"
|
" e, E : exit the interactor\n"
|
||||||
" q, Q : stop and call VTK's TerminateApp\n"
|
" q, Q : stop and call VTK's TerminateApp\n"
|
||||||
@ -271,28 +271,8 @@ cv::viz::InteractorStyle::OnKeyDown()
|
|||||||
{
|
{
|
||||||
unsigned int t = static_cast<unsigned int>(time(0));
|
unsigned int t = static_cast<unsigned int>(time(0));
|
||||||
String png_file = cv::format("screenshot-%d.png", t);
|
String png_file = cv::format("screenshot-%d.png", t);
|
||||||
String cam_file = cv::format("screenshot-%d.cam", t);
|
|
||||||
|
|
||||||
vtkSmartPointer<vtkCamera> cam = Interactor->GetRenderWindow()->GetRenderers()->GetFirstRenderer()->GetActiveCamera();
|
|
||||||
Vec2d clip;
|
|
||||||
Vec3d focal, pos, view;
|
|
||||||
cam->GetClippingRange(clip.val);
|
|
||||||
cam->GetFocalPoint(focal.val);
|
|
||||||
cam->GetPosition(pos.val);
|
|
||||||
cam->GetViewUp(view.val);
|
|
||||||
Vec2i win_pos(Interactor->GetRenderWindow()->GetPosition());
|
|
||||||
Vec2i win_size(Interactor->GetRenderWindow()->GetSize());
|
|
||||||
double angle = cam->GetViewAngle() / 180.0 * CV_PI;
|
|
||||||
|
|
||||||
String data = cv::format("%f,%f/%f,%f,%f/%f,%f,%f/%f,%f,%f/%f/%d,%d/%d,%d", clip[0],clip[1], focal[0],focal[1],focal[2],
|
|
||||||
pos[0],pos[1],pos[2], view[0],view[1], view[2], angle , win_size[0],win_size[1], win_pos[0], win_pos[1]);
|
|
||||||
|
|
||||||
saveScreenshot(png_file);
|
saveScreenshot(png_file);
|
||||||
ofstream ofs_cam(cam_file.c_str());
|
cout << "Screenshot (" << png_file.c_str() << ") successfully captured." << endl;
|
||||||
ofs_cam << data.c_str() << endl;
|
|
||||||
ofs_cam.close();
|
|
||||||
|
|
||||||
cout << "Screenshot (" << png_file.c_str() << ") and camera information (" << cam_file.c_str() << ") successfully captured." << endl;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// display current camera settings/parameters
|
// display current camera settings/parameters
|
||||||
@ -301,26 +281,21 @@ cv::viz::InteractorStyle::OnKeyDown()
|
|||||||
vtkSmartPointer<vtkCamera> cam = Interactor->GetRenderWindow()->GetRenderers()->GetFirstRenderer()->GetActiveCamera();
|
vtkSmartPointer<vtkCamera> cam = Interactor->GetRenderWindow()->GetRenderers()->GetFirstRenderer()->GetActiveCamera();
|
||||||
|
|
||||||
Vec2d clip;
|
Vec2d clip;
|
||||||
Vec3d focal, pose, view;
|
Vec3d focal, pos, view;
|
||||||
cam->GetClippingRange(clip.val);
|
cam->GetClippingRange(clip.val);
|
||||||
cam->GetFocalPoint(focal.val);
|
cam->GetFocalPoint(focal.val);
|
||||||
cam->GetPosition(pose.val);
|
cam->GetPosition(pos.val);
|
||||||
cam->GetViewUp(view.val);
|
cam->GetViewUp(view.val);
|
||||||
Vec2i win_pos(Interactor->GetRenderWindow()->GetPosition());
|
Vec2i win_pos(Interactor->GetRenderWindow()->GetPosition());
|
||||||
Vec2i win_size(Interactor->GetRenderWindow()->GetSize());
|
Vec2i win_size(Interactor->GetRenderWindow()->GetSize());
|
||||||
|
double angle = cam->GetViewAngle () / 180.0 * CV_PI;
|
||||||
|
|
||||||
|
String data = cv::format("clip(%f,%f) focal(%f,%f,%f) pos(%f,%f,%f) view(%f,%f,%f) angle(%f) winsz(%d,%d) winpos(%d,%d)",
|
||||||
|
clip[0], clip[1], focal[0], focal[1], focal[2], pos[0], pos[1], pos[2], view[0], view[1], view[2],
|
||||||
|
angle, win_size[0], win_size[1], win_pos[0], win_pos[1]);
|
||||||
|
|
||||||
|
std::cout << data.c_str() << std::endl;
|
||||||
|
|
||||||
cv::print(Mat(clip, false).reshape(1, 1));
|
|
||||||
std::cout << "/";
|
|
||||||
cv::print(Mat(focal, false).reshape(1, 1));
|
|
||||||
std::cout << "/";
|
|
||||||
cv::print(Mat(pose, false).reshape(1, 1));
|
|
||||||
std::cout << "/";
|
|
||||||
cv::print(Mat(view, false).reshape(1, 1));
|
|
||||||
std::cout << "/" << cam->GetViewAngle () / 180.0 * CV_PI;
|
|
||||||
cv::print(Mat(win_size, false).reshape(1, 1));
|
|
||||||
std::cout << "/";
|
|
||||||
cv::print(Mat(win_pos, false).reshape(1, 1));
|
|
||||||
std::cout << std::endl;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case '=':
|
case '=':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user