IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Functions

Algorithm allowing to compare two images. More...

Functions

IPSDKIPLUTILITY_API ipsdk::imaproc::attr::CompareResultPtr ipsdk::imaproc::util::compareImg (const image::ImageConstPtr &pInImg1, const image::ImageConstPtr &pInImg2)
 wrapper function for image comparison algorithm More...
 
IPSDKIPLUTILITY_API ipsdk::imaproc::attr::CompareResultPtr ipsdk::imaproc::util::compareImg (const image::ImageConstPtr &pInImg1, const image::ImageConstPtr &pInImg2, const ipsdk::imaproc::attr::ImgComparisonToleranceConstPtr &pTolerance)
 wrapper function for image comparison algorithm specifying a tolerance More...
 

Detailed Description

Algorithm allowing to compare two images.

This algorithm allows to compare two images. Images must have same size and buffer type for comparison.

Through the input parameter InOptImgComparisonTolerance::ToleranceType, the user can choose among several tolerance policies:

The result of the comparison is a data item containing the following attributes:

On output a CompareResult structure is filled.

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InImg1 [Input] First image for processing operation X
ipsdk::imaproc::attr::InImg2 [Input] Second image for processing operation X
ipsdk::imaproc::attr::InOptImgComparisonTolerance [Input Optional] tolerance used in images comparison algorithm X
ipsdk::imaproc::attr::OutCompareResult [Output] Result for images comparison operation ipsdk::processor::allocate (_pOutCompareResult)

Global Rule description

Global rule description for algorithm :
ipsdk::imaproc::matchSizeAndType (_pInImg1,_pInImg2)

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLUtility as util

Code Example

# opening of input images
inputGeometry = PyIPSDK.geometry2d(PyIPSDK.eImageBufferType.eIBT_UInt8, 510, 509)
image1 = PyIPSDK.loadRawImageFile(inputImgPath1, inputGeometry)
image2 = PyIPSDK.loadRawImageFile(inputImgPath2, inputGeometry)
# images comparison
compareResult = util.compareImg(image1, image2)
# retrieve comparison results
bEqual = compareResult.bEqual
nbDiff = compareResult.nbDiff
pixCount = compareResult.pixCount

Example of C++ code :

Example informations

Associated library

IPSDKIPLUtility

Header file

Code Example

// opening input images
ImageGeometryPtr pImageGeometry = geometry2d(imageBufferType, sizeX, sizeY);
ImagePtr pInImg1 = loadRawImageFile(inputImg1Path, *pImageGeometry);
ImagePtr pInImg2 = loadRawImageFile(inputImg2Path, *pImageGeometry);
// comparison of images
CompareResultPtr pCompareResult = compareImg(pInImg1, pInImg2);
// retrieve comparison results
const bool bEqual = pCompareResult->getValue<CompareResult::BEqual>();
const ipUInt64 nbDiff = pCompareResult->getValue<CompareResult::NbDiff>();
const ipUInt64 pixCount = pCompareResult->getValue<CompareResult::PixCount>();
See also
CompareImgLvl1
CompareImgLvl2
CompareImgLvl3

Function Documentation

◆ compareImg() [1/2]

IPSDKIPLUTILITY_API ipsdk::imaproc::attr::CompareResultPtr ipsdk::imaproc::util::compareImg ( const image::ImageConstPtr pInImg1,
const image::ImageConstPtr pInImg2 
)

wrapper function for image comparison algorithm

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ compareImg() [2/2]

IPSDKIPLUTILITY_API ipsdk::imaproc::attr::CompareResultPtr ipsdk::imaproc::util::compareImg ( const image::ImageConstPtr pInImg1,
const image::ImageConstPtr pInImg2,
const ipsdk::imaproc::attr::ImgComparisonToleranceConstPtr pTolerance 
)

wrapper function for image comparison algorithm specifying a tolerance

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure