IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
# [DocSampleImports]
import os
import sys, getopt
import PyIPSDK
import PyIPSDK.IPSDKIPLGlobalMeasure as glbmsr
# [DocSampleImports]
# [DocSampleDefineArguments]
# define input image path
imagesSamplePath = PyIPSDK.getIPSDKDirectory(PyIPSDK.eInternalDirectory.eID_Images)
inputImgPath = os.path.join(imagesSamplePath, "Lena_RGB_510x509_UInt8.tif")
# define output data path
outputDataPath = PyIPSDK.getIPSDKDefaultDirectory(PyIPSDK.eDefaultExternalDirectory.eDED_Tmp)
histoCvsPath = os.path.join(outputDataPath, "histogram.csv")
# [DocSampleDefineArguments]
# [DocSampleLoadImage]
# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# [DocSampleLoadImage]
# [DocSampleApplyOp]
# definition of histogram measure parameters
binMin = 0
binMax = 255
binWidth = 2
histogramMsrParams = PyIPSDK.createHistoMsrParamsWithBinWidth(binMin, binMax, binWidth)
# computation of histogram for each color planes
planIndexedHisto = glbmsr.multiSlice_histogramMsr2d(inImg, histogramMsrParams)
# retrieve 'by plane' histograms (used for plot, see below)
redHisto = planIndexedHisto.getValue(0)
greenHisto = planIndexedHisto.getValue(1)
blueHisto = planIndexedHisto.getValue(2)
# [DocSampleApplyOp]
# [DocSampleSaveData]
# save generated histograms
print("Saving histogram data to file " + histoCvsPath)
PyIPSDK.exportToCsv(histoCvsPath, planIndexedHisto)
# [DocSampleSaveData]
try:
# [DocPlotResults]
# plot histogram results
import matplotlib.pyplot as plt
redPlot, = plt.plot(redHisto.getBinMeanColl(), redHisto.frequencies, 'r+-', label="Red")
greenPlot, = plt.plot(greenHisto.getBinMeanColl(), greenHisto.frequencies, 'go-', label="Green")
bluePlot, = plt.plot(blueHisto.getBinMeanColl(), blueHisto.frequencies, 'b^-', label="Blue")
plt.title("Image histograms")
plt.xlabel('Bin mean')
plt.ylabel('Population')
plt.legend(handles=[redPlot, greenPlot, bluePlot])
plt.grid(True)
plt.show()
# [DocPlotResults]
except:
print("This part of sample requires matplotlib to be executed.")