Tuesday, July 05, 2005

VTK: reading 2 vtk files and calculate the similarity

#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkPolyData.h"
#include "vtkPolyDataReader.h"
#include "vtkDataSetMapper.h"
#include "vtkActor.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkInteractorStyleTrackballCamera.h"
#include "vtkProperty.h"
#include "vtkCallbackCommand.h"
#include "vtkDataSetWriter.h"
#include "vtkInteractorStyle.h"
#include "vtkPolyDataWriter.h"
#include

float r, g, b;
void method(vtkObject *caller, unsigned long eventId, void* ClientData, void* data)
{
vtkRenderWindowInteractor *iren = reinterpret_cast(caller);
int key = *iren->GetKeySym();
switch (eventId)
{
case vtkCommand::KeyPressEvent:
{
if(key == 115) //key S
{
cout<<"hello"<Render();
}
}
break;
default:
cout << r="1," g="1," b="1;" queries =" vtkPolyDataReader::New();">SetFileName("H:/okuk/queries/04202_344.vtk");
queries->Update();
vtkPolyDataReader *eigenspace = vtkPolyDataReader::New();
eigenspace->SetFileName("H:/okuk/eigenspace/04202_346.vtk");
eigenspace->Update();
vtkPolyDataMapper *datamapper = vtkPolyDataMapper::New();
datamapper->SetInput( queries->GetOutput() );
vtkPolyDataMapper *datamapper1 = vtkPolyDataMapper::New();
datamapper1->SetInput( eigenspace->GetOutput() );
vtkPolyData *PolyData;
PolyData = queries->GetOutput();
printf("Number of points read: %d\n",PolyData->GetNumberOfPoints() );
vtkPolyData *PolyData1;
PolyData1 = eigenspace->GetOutput();
printf("Number of points read: %d\n",PolyData1->GetNumberOfPoints() );
vtkDataSetMapper *mapper = vtkDataSetMapper::New();
mapper->SetInput(queries->GetOutput());
vtkDataSetMapper *mapper1 = vtkDataSetMapper::New();
mapper1->SetInput(eigenspace->GetOutput());
vtkActor *actor = vtkActor::New();
actor->SetMapper(mapper);
actor->SetPosition(0,0,0);
vtkProperty *property = vtkProperty::New();
actor->GetProperty()->SetColor(1, 0, 0);
vtkActor *actor1 = vtkActor::New();
actor1->SetMapper(mapper1);
actor1->SetPosition(0,0,0);
vtkProperty *property1 = vtkProperty::New();
actor1->GetProperty()->SetColor(0, 0, 1);
vtkRenderer *renderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(renderer);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();
iren->SetInteractorStyle(style);
vtkCallbackCommand *callback = vtkCallbackCommand::New();
callback->SetCallback(method);
iren->AddObserver(vtkCommand::KeyPressEvent, callback);
renderer->AddActor(actor);
renderer->AddActor(actor1);
renderer->SetBackground(0,0,0);
actor->Modified();
actor1->Modified();
float source_xyz[3], target_xyz[3];
float total_diff(0);
for (int x=0; xGetNumberOfPoints(); x++)
{
PolyData->GetPoint(x, source_xyz);
PolyData1->GetPoint(x, target_xyz);
total_diff += pow(source_xyz[0]-target_xyz[0],2) + pow(source_xyz[1]-target_xyz[1],2) + pow(source_xyz[2]-target_xyz[2],2);
}
cout << "Average Squared 3D Distance = " <<>GetNumberOfPoints() << writer =" vtkDataSetWriter::New();">SetInput(polydatareader->GetOutput());
// writer->SetFileName("resulting.vtk");
// writer->Write();
renWin->SetSize(450,450);
renWin->Render();
iren->Initialize();
iren->Start();
renderer->Delete();
renWin->Delete();
iren->Delete();
mapper->Delete();
mapper1->Delete();
actor->Delete();
actor1->Delete();
queries->Delete();
eigenspace->Delete();
}

Monday, July 04, 2005

VTK: to read and write to vtk

#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkPolyDataReader.h"
#include "vtkDataSetMapper.h"
#include "vtkActor.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkInteractorStyleTrackballCamera.h"
#include "vtkProperty.h"
#include "vtkCallbackCommand.h"
#include "vtkDataSetWriter.h"
#include "vtkInteractorStyle.h"
#include "vtkPolyDataWriter.h"
#include

float r, g, b;

void method(vtkObject *caller, unsigned long eventId, void* ClientData, void* data)
{
vtkRenderWindowInteractor *iren = reinterpret_cast(caller);
int key = *iren->GetKeySym();
//vtkRenderer *renderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
//renWin->AddRenderer(renderer);
switch (eventId)
{
case vtkCommand::KeyPressEvent:
{
if(key == 115) //key S
{
cout<<"hello"<Render();
}
}
break;
default:
cout << r="1," g="0.2," b="0.7;" polydata =" vtkPolyDataReader::New();">SetFileName("02463_458.vtk");
vtkPolyDataMapper *datamapper = vtkPolyDataMapper::New();
datamapper->SetInput( polydata->GetOutput() );
vtkDataSetMapper *mapper = vtkDataSetMapper::New();
mapper->SetInput(polydata->GetOutput());
vtkActor *actor = vtkActor::New();
actor->SetMapper(mapper);
actor->SetPosition(0,0,0);
vtkProperty *property = vtkProperty::New();
actor->GetProperty()->SetColor(r, g, b);
vtkRenderer *renderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(renderer);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();
iren->SetInteractorStyle(style);
vtkCallbackCommand *callback = vtkCallbackCommand::New();
callback->SetCallback(method);
iren->AddObserver(vtkCommand::KeyPressEvent, callback);
renderer->AddActor(actor);
renderer->SetBackground(0,0,0);
actor->Modified();

//below is mainly to save the open polydata file into a vtk file
vtkDataSetWriter *writer = vtkDataSetWriter::New();
writer->SetInput(polydata->GetOutput());
writer->SetFileName("resulting.vtk");
writer->Write();


renWin->SetSize(450,450);
renWin->Render();
iren->Initialize();
iren->Start();
renderer->Delete();
renWin->Delete();
iren->Delete();
mapper->Delete();
actor->Delete();
}

Friday, July 01, 2005

VTK: the use of a created method

#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkPolyDataReader.h"
#include "vtkDataSetMapper.h"
#include "vtkActor.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkInteractorStyleTrackballCamera.h"
#include "vtkProperty.h"
#include "vtkCallbackCommand.h"
#include "vtkInteractorStyle.h"
#include "vtkPolyDataWriter.h"
#include

float r, g, b;

void method(vtkObject *caller, unsigned long eventId, void* ClientData, void* data)
{
vtkRenderWindowInteractor *iren = reinterpret_cast(caller);
int key = *iren->GetKeySym();

switch (eventId)
{
case vtkCommand::KeyPressEvent:
{
if(key == 115) //key S
{
cout<<"hello"<Render();
}
}
break;
default:
cout << r="1," g="0.2," b="0.7;" polydata =" vtkPolyDataReader::New();">SetFileName("02463_458.vtk");
vtkPolyDataMapper *datamapper = vtkPolyDataMapper::New();
datamapper->SetInput( polydata->GetOutput() );
vtkDataSetMapper *mapper = vtkDataSetMapper::New();
mapper->SetInput(polydata->GetOutput());
vtkActor *actor = vtkActor::New();
actor->SetMapper(mapper);
actor->SetPosition(0,0,0);
vtkProperty *property = vtkProperty::New();
actor->GetProperty()->SetColor(r, g, b);
vtkRenderer *renderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(renderer);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();
iren->SetInteractorStyle(style);
vtkCallbackCommand *callback = vtkCallbackCommand::New();
callback->SetCallback(method);

// renWin->AddObserver(vtkCallbackCommand::AnyEvent, callback);
iren->AddObserver(vtkCommand::KeyPressEvent, callback);
renderer->AddActor(actor);
renderer->SetBackground(0,0,0);

renWin->SetSize(450,450);
renWin->Render();
actor->Modified();
iren->Initialize();
iren->Start();

renderer->Delete();
renWin->Delete();
iren->Delete();
mapper->Delete();
actor->Delete();
}

2 weeks spent doing nothing but reading

I have basically concluded what area I will look into i.e. face recognition invariant of expressions and time-lapse (after a good quality discussions with my supervisors)

I will continue to use Theo's applications and enhance from there onwards. However, his application is in linux based. I will be doing on windows-based. So much languages to learn such as FLTK, VTK, TCL and so little time. arghh..

Ideas and points to note:
a) Polygonal meshes 3D face surface will be used.
b) Identifying surface space
c) Type of transformation for robust and efficient matching
d) Matching algorithm(s) to be used
e) Recognition - statistical methods (eg PCA)
f) Analysis and results

Tasks for next week:
a) In-depth learning on free-form representation and surface space methods
b)Start with vtk
c) Test and analyse the expression database

This page is powered by Blogger. Isn't yours?