static void
int
main()
{
CreateImage(image);
filter->SetInput(image);
return EXIT_SUCCESS;
}
void
{
start[0] = 0;
start[1] = 0;
unsigned int NumRows = 200;
unsigned int NumCols = 300;
size[0] = NumCols;
size[1] = NumRows;
region.SetIndex(start);
image->SetRegions(region);
image->Allocate();
for (unsigned int r = 0; r < NumRows; ++r)
{
for (unsigned int c = 0; c < NumCols; ++c)
{
pixelIndex[0] = c;
pixelIndex[1] = r;
double c1 = c - 100.0;
double c2 = c - 200.0;
double rr = r - 100.0;
double v1 = 200.0 - std::sqrt(rr * rr + c1 * c1);
double v2 = 150.0 - std::sqrt(rr * rr + c2 * c2);
if (v1 > 190.0)
v1 = 190.0;
if (v2 > 140.0)
v2 = 140.0;
double maxv = v1;
if (maxv < v2)
maxv = v2;
double val = maxv;
if (val < 0.0)
val = 0.0;
if (val > 255.0)
val = 255.0;
if (c < 5)
val = 255.0;
image->SetPixel(pixelIndex, static_cast<unsigned char>(val));
}
}
}