IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
# [DocSampleImports]
import os
import sys, getopt
import PyIPSDK
import PyIPSDK.IPSDKIPLIntensityTransform as itrans
# [DocSampleImports]
def readCmdArguments(argv):
# Default parameters values
imagesSamplePath = PyIPSDK.getIPSDKDirectory(PyIPSDK.eInternalDirectory.eID_Images)
inputImgPath = os.path.join(imagesSamplePath, "Unequalized_Hawkes_Bay_NZ.tif")
tmpPath = PyIPSDK.getIPSDKDefaultDirectory(PyIPSDK.eDefaultExternalDirectory.eDED_Tmp)
outputImgPath = os.path.join(tmpPath, "equalization.tif")
outImgMin = 0
outImgMax = 255
try:
# Read the command line, the second argument is a string with all the possible options (short version)
# with a ':' if the option requires an argument and the third argument is the set of trings corresponding
# to the long versions of the program options
opts, args = getopt.getopt(argv,"hi:o:n:x:",["inputImgFilePath=","outputImgFilePath=", "outImgMin=", "outImgMax="])
except getopt.GetoptError:
print('<application_script_filename> [--inputImgFilePath <input_image_file_path>] [--outputImgFilePath <output_image_file_path>] [--outImgMin <min_value>] [--outImgMax <max_value>]')
sys.exit(2)
# Parse the program options
for opt, arg in opts:
if opt == '-h':
print('<application_script_filename> [--inputImgFilePath <input_image_file_path>] [--outputImgFilePath <output_image_file_path>] [--outImgMin <min_value>] [--outImgMax <max_value>]')
sys.exit(0)
elif opt in ("-i", "--inputImgFilePath"):
inputImgPath = arg
elif opt in ("-o", "--outputImgFilePath"):
outputImgPath = arg
elif opt in ("-n", "--outImgMin"):
outImgMin = float(arg)
elif opt in ("-n", "--outImgMax"):
outImgMax = float(arg)
return inputImgPath, outputImgPath, outImgMin, outImgMax
def main(argv):
# [DocSampleDefineArguments]
# retrieve program parameters
inputImgPath, outputImgPath, outImgMin, outImgMax = readCmdArguments(argv)
# [DocSampleDefineArguments]
# [DocSampleLoadImage]
# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# [DocSampleLoadImage]
# [DocSampleApplyOp]
# definition of equalization range
equalizeRange = PyIPSDK.createRange(outImgMin, outImgMax)
# equalization image computation
outImg = itrans.equalize2dImg(inImg, equalizeRange)
# [DocSampleApplyOp]
# [DocSampleSaveImage]
# save generated image
print("Writing result in file : " + outputImgPath)
PyIPSDK.saveTiffImageFile(outputImgPath, outImg)
# [DocSampleSaveImage]
if __name__ == "__main__":
main(sys.argv[1:])