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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
package require vtk
# This script calculates the luminance of an image
vtkRenderWindow imgWin
# Image pipeline
vtkTIFFReader image1
image1 SetFileName "$VTK_DATA_ROOT/Data/beach.tif"
# "beach.tif" image contains ORIENTATION tag which is
# ORIENTATION_TOPLEFT (row 0 top, col 0 lhs) type. The TIFF
# reader parses this tag and sets the internal TIFF image
# orientation accordingly. To overwrite this orientation with a vtk
# convention of ORIENTATION_BOTLEFT (row 0 bottom, col 0 lhs ), invoke
# SetOrientationType method with parameter value of 4.
image1 SetOrientationType 4
vtkImageShrink3D shrink
shrink SetInputConnection [image1 GetOutputPort]
shrink SetShrinkFactors 2 2 1
set operators "ByPass And Nand Xor Or Nor"
foreach operator $operators {
if { $operator != "ByPass" } {
vtkImageMaskBits operator${operator}
operator${operator} SetInputConnection [shrink GetOutputPort]
operator${operator} SetOperationTo${operator}
operator${operator} SetMasks 255 255 0
}
vtkImageMapper mapper${operator}
if { $operator != "ByPass" } {
mapper${operator} SetInputConnection [operator${operator} GetOutputPort]
} else {
mapper${operator} SetInputConnection [shrink GetOutputPort]
}
mapper${operator} SetColorWindow 255
mapper${operator} SetColorLevel 127.5
vtkActor2D actor${operator}
actor${operator} SetMapper mapper${operator}
vtkRenderer imager${operator}
imager${operator} AddActor2D actor${operator}
imgWin AddRenderer imager${operator}
}
set column 1
set row 1
set deltaX [expr 1.0/3.0]
set deltaY [expr 1.0/2.0]
foreach operator $operators {
imager${operator} SetViewport [expr ($column - 1) * $deltaX] [expr ($row - 1) * $deltaY] [expr $column * $deltaX] [expr $row * $deltaY]
incr column
if { $column > 3 } {set column 1; incr row}
}
imgWin SetSize 384 256
imgWin Render
wm withdraw .
|