Seg2Dgel
Class Sg2draw

java.lang.Object
  extended by Seg2Dgel.Sg2glb
      extended by Seg2Dgel.Sg2draw

public class Sg2draw
extends Sg2glb

Class Sg2draw is used to draw overlay text, dots, plus and boundarys in segmented output images used by the Seg2Dgel.

This code was derived and refactored from GELLAB-II sg2gii C language files.

This work was produced by Peter Lemkin of the National Cancer Institute, an agency of the United States Government. As a work of the United States Government there is no associated copyright. It is offered as open source software under the Mozilla Public License (version 1.1) subject to the limitations noted in the accompanying LEGAL file. This notice must be included with the code. The Open2Dprot Mozilla and Legal files are available on http://Open2Dprot.sourceforge.net/.

Version:
$Date: 2005/12/22 00:37:50 $ $Revision: 1.19 $
Author:
P. Lemkin, NCI-Frederick, Frederick, MD, 21702
See Also:
Open2Dprot Home

Field Summary
static int FONT4X6
          Font size codes for drawtext...()
static int FONT5X7
          Font size codes for drawtext...()
 
Fields inherited from class Seg2Dgel.Sg2glb
acc, accDatabaseFile, accDatabaseSwitch, accFile, accFormatMode, allowTouchingEdgesSwitch, applicationName, argsV, averageODSwitch, avg, avgPixFile, banner, bannerTitle, baseImageFileName, baseStatusTime, batchDir, bfav, bfavm, bfavm1, bfavp, bfavp1, bfog, bfogm, bfogm1, bfogm2, bfogm3, bfogm4, bfogm5, bfogp, bfogp1, bfogp2, bfogp3, bfogp4, bfogp5, bkg, BKGRD_CODE, bkgrdCorrectionSwitch, bkgrdPixFile, bkgrdSizeFlag, BLACK, boundaryInSSFSwitch, bufbkg, bufcc, bufmag, bufrest, c11, c12, c13, c14, c15, c16, c17, c18, c19, c1a, c1b, c1c, c1d, c1e, c1f, c1g, c1h, c21, c22, c23, c24, c25, c26, c27, c28, c29, c2a, c2b, c2c, c2d, c2e, c2f, c2g, c2h, c31, c32, c33, c34, c35, c36, c37, c38, c39, c3a, c3b, c3c, c3d, c3e, c3f, c3g, c3h, c41, c42, c43, c44, c45, c46, c47, c48, c49, c4a, c4b, c4c, c4d, c4e, c4f, c4g, c4h, c51, c52, c53, c54, c55, c56, c57, c58, c59, c5a, c5b, c5c, c5d, c5e, c5f, c5g, c5h, c61, c62, c63, c64, c65, c66, c67, c68, c69, c6a, c6b, c6c, c6d, c6e, c6f, c6g, c6h, c71, c72, c73, c74, c75, c76, c77, c78, c79, c7a, c7b, c7c, c7d, c7e, c7f, c7g, c7h, c81, c82, c83, c84, c85, c86, c87, c88, c89, c8a, c8b, c8c, c8d, c8e, c8f, c8g, c8h, c91, c92, c93, c94, c95, c96, c97, c98, c99, c9a, c9b, c9c, c9d, c9e, c9f, c9g, c9h, ca1, ca2, ca3, ca4, ca5, ca6, ca7, ca8, ca9, caa, cab, cac, cacheDir, cad, cae, caf, cag, cah, cal, cal2gray, calFile, cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9, cba, cbb, cbc, cbd, cbe, cbf, cbg, cbh, cc, cc1, cc2, cc3, cc4, cc5, cc6, cc7, cc8, cc9, cca, ccb, ccc, ccd, cce, ccf, ccg, cch, ccMinSize, ccMinSizeSwitch, ccNum, ccPixFile, cd1, cd2, cd3, cd4, cd5, cd6, cd7, cd8, cd9, cda, cdb, cdc, cdd, cde, cdf, cdg, cdh, computingWindowSwitch, coneOfSilenceMode, CONSOLE_FLAG, ctlCorePixSwitch, cwx1, cwx2, cwy1, cwy2, data, DATE, dbSample, dbSpot, dbug, DBUG_ADD_INTERIOR_CC_PIXELS, DBUG_BND_ANALYSIS, DBUG_CALC_FEATURES, DBUG_CHAIN_CODE_RLM_ANALYSIS, DBUG_CONSOLE, DBUG_CVT_BND_TO_CHAINCODE, DBUG_DRAW_NOTCH_PAIR_LINE, DBUG_DRAW_SAT_SPOT_BND, DBUG_DUMP_CC_PPX, DBUG_FILL_CORNERS, DBUG_FILL_HOLES_IN_PCC_CONCAVITIES, DBUG_FIND_BND_NOTCHES_IN_CHAIN_CODE, DBUG_FIND_SPOT_LIST, DBUG_INNER_LOOP_FIND_SPOT, DBUG_MAX_PROPAGATE, DBUG_NBR_COMPONENTS, DBUG_PIX_DBCODE, DBUG_PRINT_GRAY2CAL_MAP, DBUG_PROP_SAT_SPOTS, DBUG_PROP_SPOT_TO_2ND_MAXIMA, DBUG_PUSH_XY_INTO_FBL, DBUG_RMV_CONCAVITIES, DBUG_RMV_INTERIOR_CC_PIXELS, DBUG_ROUND_CORNERS, DBUG_SPLIT_CHECK_SPOT, DBUG_SPLIT_PIX_BY_FBL_BND_ANALSIS, DBUG_SWITCHES, dbugBits, dbugBitsHelpStr, dbugBitsPixFlag, dbx1, dbx2, dby1, dby2, debugSwitch, defaultSwitch, defaultTypeCode, deleteIsolatedPixelsSwitch, demoFileList, demoSwitch, DFT_2D_GEL, DFT_2D_LC_MS, DFT_NO_DB, didPropSaturatedSpots, didSplitSpotFlag, diffODSwitch, docFileList, dotsSwitch, dpx1, dpx2, dpy1, dpy2, draw, drawBoundaryOverlayType, drawBoundarySwitch, drawDotOverlayType, drawMEROverlayType, drawMERSwitch, drawPlusOverlayType, drawPlusSwitch, drawSxSyEllipseSwitch, drawSxSyOverlayType, drawTitleSwitch, dtdSwitch, ENABLE_DEVELOPER_DEBUGGING, ENABLE_SATURATED_SPOTS, ENABLE_SPOT_SPLITTING, fbl, fileSeparator, fio, fnd, fourSqrtPi, gHist, glbPercentThr, gray2cal, gridSize, hashFBL, HASHFBLPRIME, hashWS, histThreshold, i0R, i10, i11, i12, i13, i14, i15, i16, i17, i18, i2U, i4L, i6D, ini, inPixFile, ISOLATED_PIXEL_CODE, j11, j12, j13, j14, j15, j16, j17, j18, j19, j1a, j1b, j1c, j1d, j1e, j1f, j1g, j1h, j21, j22, j23, j24, j25, j26, j27, j28, j29, j2a, j2b, j2c, j2d, j2e, j2f, j2g, j2h, j31, j32, j33, j34, j35, j36, j37, j38, j39, j3a, j3b, j3c, j3d, j3e, j3f, j3g, j3h, j41, j42, j43, j44, j45, j46, j47, j48, j49, j4a, j4b, j4c, j4d, j4e, j4f, j4g, j4h, j51, j52, j53, j54, j55, j56, j57, j58, j59, j5a, j5b, j5c, j5d, j5e, j5f, j5g, j5h, j61, j62, j63, j64, j65, j66, j67, j68, j69, j6a, j6b, j6c, j6d, j6e, j6f, j6g, j6h, j71, j72, j73, j74, j75, j76, j77, j78, j79, j7a, j7b, j7c, j7d, j7e, j7f, j7g, j7h, j81, j82, j83, j84, j85, j86, j87, j88, j89, j8a, j8b, j8c, j8d, j8e, j8f, j8g, j8h, j91, j92, j93, j94, j95, j96, j97, j98, j99, j9a, j9b, j9c, j9d, j9e, j9f, j9g, j9h, ja1, ja2, ja3, ja4, ja5, ja6, ja7, ja8, ja9, jaa, jab, jac, jad, jae, jaf, jag, jah, jarFileList, jarLibrFileList, jb1, jb2, jb3, jb4, jb5, jb6, jb7, jb8, jb9, jba, jbb, jbc, jbd, jbe, jbf, jbg, jbh, jc1, jc2, jc3, jc4, jc5, jc6, jc7, jc8, jc9, jca, jcb, jcc, jcd, jce, jcf, jcg, jch, jd1, jd2, jd3, jd4, jd5, jd6, jd7, jd8, jd9, jda, jdb, jdc, jdd, jde, jdf, jdg, jdh, keepInputImageSwitch, KILL_SPOT_CODE, killSpotColor, laplacianSwitch, legalImageFileExtens, lineLaplacianHeight, lineLaplacianWidth, lowPassSize, lowpassSwitch, lp13xZZSwitch, lp3x3Switch, lp5x5Switch, lp7x7Switch, mag2ndPixFile, MAX_BUFFERED_SPOTS, MAX_CC_CODE, MAX_INTERIOR_FBL_SIZE, MAX_PCC_CODE, maxColsToPrint, maxGhist, maxGrayPixel, MAXSUBSPOTS, meanGhist, merx1, merx2, merxp1, merxp2, mery1, mery2, meryp1, meryp2, MHISTSIZE, MIN_CC_CODE, MIN_PCC_CODE, MINBLOBAREA, minGhist, MINSPLITSPOTSIZE, nBitsPerPixel, nBkgrdSize, nBytesPerPixel, NEVER, ngh, notch, nPixels, nStatusName, nSwitches, optimizeInteriorFBLSwitch, osName, paramH, PCC_BASE_CODE, pix, pix1, pix2, pix3, pix4, pix5, pix6, pix7, pixDir, pixDumpSwitch, pixelSizeMicrons, pixFileExtn, pixHeight, pixWidth, ppxDir, pra, projDir, projDirSwitch, propertiesFile, propertiesFileSwitch, pTileGhist, PUBLISH, quickEstimateSwitch, rdbmsDir, rest, restOfPixFile, restOfPixSwitch, REVISION, rlmCWfile, rmvDprimeSizingSwitch, sampleSwitch, sat, saturatedSpotSwitch, scaledMaxOD, seg2dgelURL, segPixFile, segPixSwitch, sg2, simpleFileName, sizeFractionGaussianWidth, sort, split, splitLargeCCfblByBndAnalSwitch, splitLargeCCfblByRLManalSwitch, splitLargeCCfblByThreshAnalSwitch, splitMinCCsize, splitSpotSwitch, spotNumber, ssfFormatMode, ssfFormatSwitch, ssfOutputEpilogueFile, ssfOutputFile, ssfOutputPrefaceFile, startTime, statusMemoryFree, statusMemoryTot, statusName, statusStartTime, sw, switchOptCBvalue, switchOptData, switchOptValue, t1Area, t1Density, t1Range, t1SxSyRatio, t2Area, t2Density, t2Range, t2SxSyRatio, TEST_LARGE_IMAGE, thrAreaSwitch, thrDensitySwitch, thrRangeSwitch, thrSxSyRatioSwitch, timerSwitch, tmpDir, UNLABELED_CC_CODE, updateSwitch, usageSwitch, USE_13X13, USE_BKGD_AND_ISOLATED_PIXEL_BACKGROUND, USE_DEMO_DATA, USE_DOM_XML_SSF, use3x3laplacianSwitch, use5x5laplacianSwitch, useBkgdAndIsolatedPixelFlag, useBusseLaplacianSwitch, useCopyOfPix1ForPix5Switch, useHistGUISwitch, useHorizLineLaplacianSwitch, usePopupGUISwitch, userDir, useVertLineLaplacianSwitch, util, VERSION, WHITE, widthWindmp, windmpStepSize, wrk, wXsize, wYsize, xDbug, xmlDir, xPentrance, xPexit, yDbug, yPentrance, yPexit, yTitle
 
Constructor Summary
Sg2draw()
          Sg2draw() - Constructor
 
Method Summary
 void drawBoundariesForSpots(char[] pix, int color)
          drawBoundariesForSpots() - If generating the segmented spot image in pix5, and the -DRAWSPOTS:B<'O'riginal or 'Z'image> was set, draw a white boundary around each spot in the 'O'riginal or segmented 'Z' image (-DRAWSPOTS:BO default).
 void drawBoundariesForSpots(int[] pix, int color)
          drawBoundariesForSpots() - If generating the segmented spot image in pix5, and the -DRAWSPOTS:B<'O'riginal or 'Z'image> was set, draw a white boundary around each spot in the 'O'riginal or segmented 'Z' image (-DRAWSPOTS:BO default).
 void drawDotsInSpots(char[] pix, int color)
          drawDotsInSpots() - If generating the segmented spot image in pix5, and the -drawDots, -drawPlus, -drawBoundary, -drawMinEnclRect, or -drawSxSyEllipse switch was set, then draw a color dot or plus in the center of each spot.
 void drawTextInPix(char[] pix, int x0, int y0, java.lang.String str, int gray, int font, int zoom, int pixWidth, int pixHeight, boolean clrBkgrdFlag)
          drawTextInPix() - Display the string 'str' starting at (x0,y0) in specified 'gray' value in either of two charcter sizes 4x6 (upper case only: font=0); or 5x7 (upper/lower case: font=1) and a 'zoom' factor of 1X (default) to 64X.
 void drawTextInPix(int[] pix, int x0, int y0, java.lang.String str, int gray, int font, int zoom, int pixWidth, int pixHeight, boolean clrBkgrdFlag)
          drawTextInPix() - Display the string 'str' starting at (x0,y0) in specified 'gray' value in either of two charcter sizes 4x6 (upper case only: font=0); or 5x7 (upper/lower case: font=1) and a 'zoom' factor of 1X (default) to 64X.
 void drawTitleInPix(DbSample dbSample, java.lang.String pixFile, char[] pix)
          drawTitleInPix() - draw title in char[] pix
 void drawTitleInPix(java.lang.String pixFile, int[] pix)
          drawTitleInPix() - draw title in int[] pix
 
Methods inherited from class Seg2Dgel.Sg2glb
get2D, get2D, getPixLineBuf, getPixLineBuf, initGlb, isDBwindow, isDBwindow, put2Dbuf, resetGlb, set2D, set2D, setPixLineBuf, setPixLineBuf, showReportStatus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FONT4X6

public static final int FONT4X6
Font size codes for drawtext...()


FONT5X7

public static final int FONT5X7
Font size codes for drawtext...()

Constructor Detail

Sg2draw

public Sg2draw()
Sg2draw() - Constructor

Method Detail

drawTextInPix

public void drawTextInPix(int[] pix,
                          int x0,
                          int y0,
                          java.lang.String str,
                          int gray,
                          int font,
                          int zoom,
                          int pixWidth,
                          int pixHeight,
                          boolean clrBkgrdFlag)
drawTextInPix() - Display the string 'str' starting at (x0,y0) in specified 'gray' value in either of two charcter sizes 4x6 (upper case only: font=0); or 5x7 (upper/lower case: font=1) and a 'zoom' factor of 1X (default) to 64X.
 NOTE:  Only 7-bits of the 8-bit ASCII character are used.
 NOTE:  These fonts are hardwired! 

Parameters:
pix - is the picture buffer to draw text in
x0 - is the upper left hand corner of box to draw text in
y0 - is the upper left hand corner of box to draw text in
str - is the text string to draw in pix
gray - is the color of text
font - is the font code: FONT4X6, FONT5X7
zoom - is the zoom factor 1X (default) to 64X max
pixWidth - is image width
pixHeight - is image height
clrBkgrdFlag - - if set, clear background w/complent gray

drawTextInPix

public void drawTextInPix(char[] pix,
                          int x0,
                          int y0,
                          java.lang.String str,
                          int gray,
                          int font,
                          int zoom,
                          int pixWidth,
                          int pixHeight,
                          boolean clrBkgrdFlag)
drawTextInPix() - Display the string 'str' starting at (x0,y0) in specified 'gray' value in either of two charcter sizes 4x6 (upper case only: font=0); or 5x7 (upper/lower case: font=1) and a 'zoom' factor of 1X (default) to 64X.
 NOTE:  Only 7-bits of the 8-bit ASCII character are used.
 NOTE:  These fonts are hardwired! 

Parameters:
pix - is the picture buffer to draw text in
x0 - is the upper left hand corner of box to draw text in
y0 - is the upper left hand corner of box to draw text in
str - is the text string to draw in pix
gray - is the color of text
font - is the font code: FONT4X6, FONT5X7
zoom - is the zoom factor 1X (default) to 64X max
pixWidth - is image width
pixHeight - is image height
clrBkgrdFlag - - if set, clear background w/complent gray

drawTitleInPix

public void drawTitleInPix(java.lang.String pixFile,
                           int[] pix)
drawTitleInPix() - draw title in int[] pix

Parameters:
pixFile - is name of corresponding image
pix - is the picture buffer to draw text in

drawTitleInPix

public void drawTitleInPix(DbSample dbSample,
                           java.lang.String pixFile,
                           char[] pix)
drawTitleInPix() - draw title in char[] pix

Parameters:
dbSample - to get info
pixFile - is name of corresponding image
pix - is the picture buffer to draw text in

drawDotsInSpots

public void drawDotsInSpots(char[] pix,
                            int color)
drawDotsInSpots() - If generating the segmented spot image in pix5, and the -drawDots, -drawPlus, -drawBoundary, -drawMinEnclRect, or -drawSxSyEllipse switch was set, then draw a color dot or plus in the center of each spot. NOTE: Draw a white 3x3 '+' which is nicer but slower than a DOT.

Parameters:
pix - is the picture buffer to draw text in
color - is the color to draw the text

drawBoundariesForSpots

public void drawBoundariesForSpots(char[] pix,
                                   int color)
drawBoundariesForSpots() - If generating the segmented spot image in pix5, and the -DRAWSPOTS:B<'O'riginal or 'Z'image> was set, draw a white boundary around each spot in the 'O'riginal or segmented 'Z' image (-DRAWSPOTS:BO default). The boundaries are in a list of DbBoundary lists listOfBnds[ccNumber] which is generated at the time the FBL is generated.

Parameters:
pix - is the picture buffer to draw text in
color - is the color to draw the text

drawBoundariesForSpots

public void drawBoundariesForSpots(int[] pix,
                                   int color)
drawBoundariesForSpots() - If generating the segmented spot image in pix5, and the -DRAWSPOTS:B<'O'riginal or 'Z'image> was set, draw a white boundary around each spot in the 'O'riginal or segmented 'Z' image (-DRAWSPOTS:BO default). The boundaries are in a list of DbBoundary lists listOfBnds[ccNumber] which is generated at the time the FBL is generated.

Parameters:
pix - is the picture buffer to draw text in
color - is the color to draw the text