};
BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImageConvolution,bbtk::AtomicBlackBox);
-BBTK_NAME("ImageConvolution");
-BBTK_AUTHOR("jn.trillos44@uniandes.edu.co");
-BBTK_DESCRIPTION("Processes an image through different convolution matrix (Edge detect)");
-BBTK_CATEGORY("filter");
-BBTK_INPUT(ImageConvolution,In,"Image to be filetered",vtkImageData*,"");
-BBTK_INPUT(ImageConvolution,Factor,"Factor by how the edges will be represented",double,"");
-BBTK_INPUT(ImageConvolution,On,"Boolean that represents if the filter is turned on. True = On.",bool,"");
-BBTK_OUTPUT(ImageConvolution,Out,"Filtered Image",vtkImageData*,"");
+ BBTK_NAME("ImageConvolution");
+ BBTK_AUTHOR("jn.trillos44@uniandes.edu.co");
+ BBTK_DESCRIPTION("Processes an image through different convolution matrix (Edge detect)");
+ BBTK_CATEGORY("filter");
+
+ BBTK_INPUT(ImageConvolution,In,"Image to be filetered",vtkImageData*,"");
+ BBTK_INPUT(ImageConvolution,Factor,"Factor by how the edges will be represented",double,"");
+ BBTK_INPUT(ImageConvolution,On,"(default false) Boolean that represents if the filter is turned on. True = On.",bool,"");
+
+ BBTK_OUTPUT(ImageConvolution,Out,"Filtered Image",vtkImageData*,"");
+
BBTK_END_DESCRIBE_BLACK_BOX(ImageConvolution);
}
// EO namespace bbPackRecalage
//------------------------------------------------------------
Transparency::Transparency()
{
- _image1=NULL;
- _image2=NULL;
- _percent=0;
- _newImage = NULL;
- _processed=false;
+ _image1 = NULL;
+ _image2 = NULL;
+ _percent = 0;
+ _newImage = NULL;
+ _processed = false;
}
/*
//------------------------------------------------------------
void Transparency::calculateImage()
{
-
if(_image1!=NULL && _image2!=NULL)
{
-
// IMAGE 1
// Information from image1
_image1->GetSpacing(spcImg1);
_image1->GetExtent(extImg1);
_type = _image1->GetScalarType();
-
// The Z dimension is 1 for a 2D image
dimImg1[0] = extImg1[1] - extImg1[0]+1;
dimImg1[1] = extImg1[3] - extImg1[2]+1;
dimImg1[2] = 1;
-
//IMAGE 2
-
// Information from image2
_image2->GetSpacing(spcImg2);
_image2->GetExtent(extImg2);
-
// The Z dimension is 1 for a 2D image
dimImg2[0] = extImg2[1] - extImg2[0]+1;
dimImg2[1] = extImg2[3] - extImg2[2]+1;
dimImg2[2] = 1;
-
long numPixelsImg1 = dimImg1[0]*dimImg1[1];
- long numPixelsImg2 = dimImg2[0]*dimImg2[1];
-
+ long numPixelsImg2 = dimImg2[0]*dimImg2[1];
double factorX = 1;
double factorY = 1;
vtkImageResample *resample = vtkImageResample::New();
resample->SetAxisMagnificationFactor(0,factorX);
resample->SetAxisMagnificationFactor(1,factorY);
resample->SetInformationInput(_image2);
-
initialize(dimImg2, spcImg2);
//EED 2017-01-01 Migration VTK7
#if VTK_MAJOR_VERSION <= 5
#else
resample->Update();
#endif
-
result = resample->GetOutput();
//EED 2017-01-01 Migration VTK7
#if VTK_MAJOR_VERSION <= 5
//...
#endif
createImage(result,_image2,dimImg2[0],dimImg2[1]);
-
- } //if
- else if (numPixelsImg1>numPixelsImg2)
- {
+ } else if (numPixelsImg1>numPixelsImg2) {
//EED 2017-01-01 Migration VTK7
#if VTK_MAJOR_VERSION <= 5
resample->SetInput(_image2);
resample->SetAxisMagnificationFactor(0,factorX);
resample->SetAxisMagnificationFactor(1,factorY);
resample->SetInformationInput(_image1);
-
initialize(dimImg1, spcImg1);
-
//EED 2017-01-01 Migration VTK7
#if VTK_MAJOR_VERSION <= 5
// ...
#else
result->Modified();
#endif
-
createImage(_image1,result,dimImg1[0],dimImg1[1]);
- } // else if
- else
- {
+ } else {
//If both images have the same number of pixels, the resultant image will have the
//properties of the first image.
//EED 2017-01-01 Migration VTK7
#else
resample->Update();
#endif
-
result = resample->GetOutput();
-
//EED 2017-01-01 Migration VTK7
#if VTK_MAJOR_VERSION <= 5
result->Update();
#else
result->Modified();
#endif
-
createImage(_image1,result,dimImg1[0],dimImg1[1]);
-
} //else
-
resample->Delete();
_processed=true;
- }
+ }
}
void Transparency::initialize(int dimensions[], double spacing[])
#else
_newImage->AllocateScalars(_type,1);
#endif
-
-
}
void Transparency::createImage(vtkImageData *img1, vtkImageData *img2, int sizeX, int sizeY)
{
-// int i, j; EED ???
-
if(_type == VTK_CHAR)
{
//POINTERS:
- char* dataImagePointer1 = NULL;
- char* dataImagePointer2 = NULL;
- char* dataImageResultPointer = NULL;
-
+ char* dataImagePointer1 = NULL;
+ char* dataImagePointer2 = NULL;
+ char* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
}
else if(_type == VTK_SIGNED_CHAR)
{
//POINTERS:
- signed char* dataImagePointer1 = NULL;
- signed char* dataImagePointer2 = NULL;
+ signed char* dataImagePointer1 = NULL;
+ signed char* dataImagePointer2 = NULL;
signed char* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
else if(_type == VTK_UNSIGNED_CHAR)
{
//POINTERS:
- unsigned char* dataImagePointer1 = NULL;
- unsigned char* dataImagePointer2 = NULL;
- unsigned char* dataImageResultPointer = NULL;
+ unsigned char* dataImagePointer1 = NULL;
+ unsigned char* dataImagePointer2 = NULL;
+ unsigned char* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
}
else if(_type == VTK_SHORT)
{
//POINTERS:
- short* dataImagePointer1 = NULL;
- short* dataImagePointer2 = NULL;
- short* dataImageResultPointer = NULL;
+ short* dataImagePointer1 = NULL;
+ short* dataImagePointer2 = NULL;
+ short* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
}
else if(_type == VTK_UNSIGNED_SHORT)
{
//POINTERS:
- unsigned short* dataImagePointer1 = NULL;
- unsigned short* dataImagePointer2 = NULL;
- unsigned short* dataImageResultPointer = NULL;
+ unsigned short* dataImagePointer1 = NULL;
+ unsigned short* dataImagePointer2 = NULL;
+ unsigned short* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
}
else if(_type == VTK_UNSIGNED_LONG)
{
//POINTERS:
- unsigned long* dataImagePointer1 = NULL;
- unsigned long* dataImagePointer2 = NULL;
- unsigned long* dataImageResultPointer = NULL;
+ unsigned long* dataImagePointer1 = NULL;
+ unsigned long* dataImagePointer2 = NULL;
+ unsigned long* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
}
else if(_type == VTK_FLOAT)
{
//POINTERS:
- float* dataImagePointer1 = NULL;
- float* dataImagePointer2 = NULL;
- float* dataImageResultPointer = NULL;
+ float* dataImagePointer1 = NULL;
+ float* dataImagePointer2 = NULL;
+ float* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
}
else if(_type == VTK_DOUBLE)
{
//POINTERS:
- double* dataImagePointer1 = NULL;
- double* dataImagePointer2 = NULL;
- double* dataImageResultPointer = NULL;
+ double* dataImagePointer1 = NULL;
+ double* dataImagePointer2 = NULL;
+ double* dataImageResultPointer = NULL;
createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
}
#else
_newImage->Modified();
#endif
-
-
}
template <class T>
void Transparency::createImageByType(T* dataImagePointer1, T* dataImagePointer2, T* dataImageResultPointer, vtkImageData *img1, vtkImageData *img2, int sizeX, int sizeY)
{
int i, j;
-
dataImagePointer1 = (T*) img1->GetScalarPointer(0,0,0);
dataImagePointer2 = (T*) img2->GetScalarPointer(0,0,0);
dataImageResultPointer = (T*) _newImage->GetScalarPointer(0,0,0);
dataImagePointer1 = (T*)img1->GetScalarPointer(i,j,0);
dataImagePointer2 = (T*)img2->GetScalarPointer(i,j,0);
dataImageResultPointer = (T*)_newImage->GetScalarPointer(i,j,0);
-
*dataImageResultPointer = (T)*dataImagePointer1*_percent + (T)*dataImagePointer2*(1-_percent);
- }
- }
+ } // for h
+ } // for i
}
-
+
/*
* Get new image
*/