// PVAPI
-enum { CAP_PROP_PVAPI_MULTICASTIP = 300, // ip for anable multicast master mode. 0 for disable multicast
- CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE = 301 // FrameStartTriggerMode: Determines how a frame is initiated
+enum { CAP_PROP_PVAPI_MULTICASTIP = 300, // ip for anable multicast master mode. 0 for disable multicast
+ CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE = 301, // FrameStartTriggerMode: Determines how a frame is initiated
+ CAP_PROP_PVAPI_DECIMATIONHORIZONTAL = 302, // Horizontal sub-sampling of the image
+ CAP_PROP_PVAPI_DECIMATIONVERTICAL = 303, // Vertical sub-sampling of the image
+ CAP_PROP_PVAPI_BINNINGX = 304, // Horizontal binning factor
+ CAP_PROP_PVAPI_BINNINGY = 305 // Vertical binning factor
};
// PVAPI: FrameStartTriggerMode
CAP_PVAPI_FSTRIGMODE_SOFTWARE = 4 // Software
};
+// PVAPI: DecimationHorizontal, DecimationVertical
+enum { CAP_PVAPI_DECIMATION_OFF = 1, // Off
+ CAP_PVAPI_DECIMATION_2OUTOF4 = 2, // 2 out of 4 decimation
+ CAP_PVAPI_DECIMATION_2OUTOF8 = 3, // 2 out of 8 decimation
+ CAP_PVAPI_DECIMATION_2OUTOF16 = 5 // 2 out of 16 decimation
+ };
+
// Properties of cameras available through XIMEA SDK interface
enum { CAP_PROP_XI_DOWNSAMPLING = 400, // Change image resolution by binning or skipping.
CAP_PROP_XI_DATA_FORMAT = 401, // Output data format.
// PVAPI
CV_CAP_PROP_PVAPI_MULTICASTIP = 300, // ip for anable multicast master mode. 0 for disable multicast
CV_CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE = 301, // FrameStartTriggerMode: Determines how a frame is initiated
+ CV_CAP_PROP_PVAPI_DECIMATIONHORIZONTAL = 302, // Horizontal sub-sampling of the image
+ CV_CAP_PROP_PVAPI_DECIMATIONVERTICAL = 303, // Vertical sub-sampling of the image
+ CV_CAP_PROP_PVAPI_BINNINGX = 304, // Horizontal binning factor
+ CV_CAP_PROP_PVAPI_BINNINGY = 305, // Vertical binning factor
// Properties of cameras available through XIMEA SDK interface
CV_CAP_PROP_XI_DOWNSAMPLING = 400, // Change image resolution by binning or skipping.
return 4.0;
else
return -1.0;
+ case CV_CAP_PROP_PVAPI_DECIMATIONHORIZONTAL:
+ PvAttrUint32Get(Camera.Handle, "DecimationHorizontal", &nTemp);
+ return (double)nTemp;
+ case CV_CAP_PROP_PVAPI_DECIMATIONVERTICAL:
+ PvAttrUint32Get(Camera.Handle, "DecimationVertical", &nTemp);
+ return (double)nTemp;
+ case CV_CAP_PROP_PVAPI_BINNINGX:
+ PvAttrUint32Get(Camera.Handle,"BinningX",&nTemp);
+ return (double)nTemp;
+ case CV_CAP_PROP_PVAPI_BINNINGY:
+ PvAttrUint32Get(Camera.Handle,"BinningY",&nTemp);
+ return (double)nTemp;
}
return -1.0;
}
bool CvCaptureCAM_PvAPI::setProperty( int property_id, double value )
{
+ tPvErr error;
+
switch ( property_id )
{
case CV_CAP_PROP_FRAME_WIDTH:
}
break;
case CV_CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE:
- tPvErr error;
if (value==0)
error = PvAttrEnumSet(Camera.Handle, "FrameStartTriggerMode", "Freerun");
else if (value==1)
break;
else
return false;
+ case CV_CAP_PROP_PVAPI_DECIMATIONHORIZONTAL:
+ if (value >= 1 && value <= 8)
+ error = PvAttrUint32Set(Camera.Handle, "DecimationHorizontal", value);
+ else
+ error = ePvErrOutOfRange;
+ if(error==ePvErrSuccess)
+ break;
+ else
+ return false;
+ case CV_CAP_PROP_PVAPI_DECIMATIONVERTICAL:
+ if (value >= 1 && value <= 8)
+ error = PvAttrUint32Set(Camera.Handle, "DecimationVertical", value);
+ else
+ error = ePvErrOutOfRange;
+ if(error==ePvErrSuccess)
+ break;
+ else
+ return false;
+ case CV_CAP_PROP_PVAPI_BINNINGX:
+ error = PvAttrUint32Set(Camera.Handle, "BinningX", value);
+ if(error==ePvErrSuccess)
+ break;
+ else
+ return false;
+ case CV_CAP_PROP_PVAPI_BINNINGY:
+ error = PvAttrUint32Set(Camera.Handle, "BinningY", value);
+ if(error==ePvErrSuccess)
+ break;
+ else
+ return false;
default:
return false;
}