IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
# [DocSampleImports]
import os
import sys, getopt
import PyIPSDK
import PyIPSDK.IPSDKIPLBasicMorphology as morpho
# [DocSampleImports]
def readCmdArguments(argv):
# Default parameters values
imagesSamplePath = PyIPSDK.getIPSDKDirectory(PyIPSDK.eInternalDirectory.eID_Images)
inputImgPath = os.path.join(imagesSamplePath, "MorphoBin2d1.raw")
tmpPath = PyIPSDK.getIPSDKDefaultDirectory(PyIPSDK.eDefaultExternalDirectory.eDED_Tmp)
outputImgPath = os.path.join(tmpPath, "boundary2d_res.raw")
sizeX = 256
sizeY = 256
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:x:y:",["inputImgFilePath=","outputImgFilePath=","imgXSz=","imgYSz="])
except getopt.GetoptError:
print('<application_script_filename> [--inputImgFilePath <input_image_file_path> --imgXSz <image_x_size> --imgYSz <image_y_size>] [--outputImgFilePath <output_image_file_path>]')
sys.exit(2)
# Parse the program options
for opt, arg in opts:
if opt == '-h':
print('<application_script_filename> [--inputImgFilePath <input_image_file_path> --imgXSz <image_x_size> --imgYSz <image_y_size>] [--outputImgFilePath <output_image_file_path>]')
sys.exit(0)
elif opt in ("-i", "--inputImgFilePath"):
inputImgPath = arg
elif opt in ("-o", "--outputImgFilePath"):
outputImgPath = arg
elif opt in ("-x", "--imgXSz"):
sizeX = int(arg)
elif opt in ("-y", "--imgYSz"):
sizeY = int(arg)
return inputImgPath, outputImgPath, sizeX, sizeY
def main(argv):
# [DocSampleDefineArguments]
# retrieve program parameters
inputImgPath, outputImgPath, sizeX, sizeY = readCmdArguments(argv)
# [DocSampleDefineArguments]
# [DocSampleLoadImage]
# opening of input image
imgGeometry = PyIPSDK.geometry2d(PyIPSDK.eImageBufferType.eIBT_Binary, sizeX, sizeY)
inImg = PyIPSDK.loadRawImageFile(inputImgPath, imgGeometry)
# [DocSampleLoadImage]
# [DocSampleApplyOp]
# boundary 2d image computation
outImg = morpho.boundary2dImg(inImg)
# [DocSampleApplyOp]
# [DocSampleSaveImage]
# save generated image
print("Writing result in file : " + outputImgPath)
PyIPSDK.saveRawImageFile(outputImgPath, outImg)
# [DocSampleSaveImage]
if __name__ == "__main__":
main(sys.argv[1:])