函数
图像采集

包含图像获取(回调取图、主动取图)、开始采集和结束采集接口等。 更多...

函数

MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackEx (void *handle, void(__stdcall *cbOutput)(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pstFrameInfo, void *pUser), void *pUser)
 注册图像数据回调 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackForRGB (void *handle, void(__stdcall *cbOutput)(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pstFrameInfo, void *pUser), void *pUser)
 注册图像数据回调,RGB 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackForBGR (void *handle, void(__stdcall *cbOutput)(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pstFrameInfo, void *pUser), void *pUser)
 注册图像数据回调,BGR 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_StartGrabbing (IN void *handle)
 开始取流 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_StopGrabbing (IN void *handle)
 停止取流 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_GetImageForRGB (IN void *handle, IN OUT unsigned char *pData, IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX *pstFrameInfo, int nMsec)
 获取一帧RGB数据,此函数为查询式获取,每次调用查询内部 缓存有无数据,有数据则获取数据,无数据返回错误码 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_GetImageForBGR (IN void *handle, IN OUT unsigned char *pData, IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX *pstFrameInfo, int nMsec)
 获取一帧BGR数据,此函数为查询式获取,每次调用查询内部 缓存有无数据,有数据则获取数据,无数据返回错误码 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_GetImageBuffer (IN void *handle, OUT MV_FRAME_OUT *pstFrame, IN unsigned int nMsec)
 使用内部缓存获取一帧图片(与 MV_CC_Display() 不能同时使用) 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_FreeImageBuffer (IN void *handle, IN MV_FRAME_OUT *pstFrame)
 释放图像缓存(此接口用于释放不再使用的图像缓存,与 MV_CC_GetImageBuffer() 配套使用) 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_GetOneFrameTimeout (IN void *handle, IN OUT unsigned char *pData, IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX *pstFrameInfo, unsigned int nMsec)
 采用超时机制获取一帧图片,SDK内部等待直到有数据时返回 更多...
 
MV_CAMCTRL_API int __stdcall MV_CC_ClearImageBuffer (IN void *handle)
 清除取流数据缓存 更多...
 

详细描述

包含图像获取(回调取图、主动取图)、开始采集和结束采集接口等。

函数说明

◆ MV_CC_RegisterImageCallBackEx()

MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackEx ( void *  handle,
void(__stdcall *cbOutput)(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pstFrameInfo, void *pUser)  ,
void *  pUser 
)

注册图像数据回调

参数
handle[IN] 设备句柄
cbOutput[IN] 回调函数指针
pUser[IN] 用户自定义变量
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 通过该接口可以设置图像数据回调函数,在 MV_CC_CreateHandle() 之后即可调用。
 • 图像数据采集有三种方式,三种方式不能同时使用:
    • 方式一:调用 MV_CC_RegisterImageCallBackEx() 设置图像数据回调函数,然后调用 MV_CC_StartGrabbing() 开始采集,采集的图像数据在设置的回调函数中返回。
    • 方式二:调用 MV_CC_StartGrabbing() 开始采集,然后在应用层循环调用 MV_CC_GetOneFrameTimeout() 获取指定像素格式的帧数据,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。
    • 方式三:调用 MV_CC_StartGrabbing() 开始采集,然后在应用层调用 MV_CC_GetImageBuffer() 获取指定像素格式的帧数据,然后调用 MV_CC_FreeImageBuffer() 释放buffer,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。
示例
Grab_ImageCallback.cpp , 以及 Trigger_ImageCallback.cpp.

◆ MV_CC_RegisterImageCallBackForRGB()

MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackForRGB ( void *  handle,
void(__stdcall *cbOutput)(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pstFrameInfo, void *pUser)  ,
void *  pUser 
)

注册图像数据回调,RGB

参数
handle[IN] 设备句柄
cbOutput[IN] 回调函数指针
pUser[IN] 用户自定义变量
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 通过该接口可以设置图像数据回调函数,在 MV_CC_CreateHandle() 之后即可调用。
 • 图像数据采集有三种方式,三种方式不能同时使用:
    • 方式一:调用 MV_CC_RegisterImageCallBackEx() 设置图像数据回调函数,然后调用 MV_CC_StartGrabbing() 开始采集,采集的图像数据在设置的回调函数中返回。
    • 方式二:调用 MV_CC_StartGrabbing() 开始采集,然后在应用层循环调用 MV_CC_GetOneFrameTimeout() 获取指定像素格式的帧数据,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。
    • 方式三:调用 MV_CC_StartGrabbing() 开始采集,然后在应用层调用 MV_CC_GetImageBuffer() 获取指定像素格式的帧数据,然后调用 MV_CC_FreeImageBuffer() 释放buffer,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。

◆ MV_CC_RegisterImageCallBackForBGR()

MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackForBGR ( void *  handle,
void(__stdcall *cbOutput)(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pstFrameInfo, void *pUser)  ,
void *  pUser 
)

注册图像数据回调,BGR

参数
handle[IN] 设备句柄
cbOutput[IN] 回调函数指针
pUser[IN] 用户自定义变量
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 通过该接口可以设置图像数据回调函数,在 MV_CC_CreateHandle() 之后即可调用。
 • 图像数据采集有三种方式,三种方式不能同时使用:
    • 方式一:调用 MV_CC_RegisterImageCallBackEx() 设置图像数据回调函数,然后调用 MV_CC_StartGrabbing() 开始采集,采集的图像数据在设置的回调函数中返回。
    • 方式二:调用 MV_CC_StartGrabbing() 开始采集,然后在应用层循环调用 MV_CC_GetOneFrameTimeout() 获取指定像素格式的帧数据,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。
    • 方式三:调用 MV_CC_StartGrabbing() 开始采集,然后在应用层调用 MV_CC_GetImageBuffer() 获取指定像素格式的帧数据,然后调用 MV_CC_FreeImageBuffer() 释放buffer,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。

◆ MV_CC_StartGrabbing()

MV_CAMCTRL_API int __stdcall MV_CC_StartGrabbing ( IN void *  handle)

◆ MV_CC_StopGrabbing()

MV_CAMCTRL_API int __stdcall MV_CC_StopGrabbing ( IN void *  handle)

◆ MV_CC_GetImageForRGB()

MV_CAMCTRL_API int __stdcall MV_CC_GetImageForRGB ( IN void *  handle,
IN OUT unsigned char *  pData,
IN unsigned int  nDataSize,
IN OUT MV_FRAME_OUT_INFO_EX pstFrameInfo,
int  nMsec 
)

获取一帧RGB数据,此函数为查询式获取,每次调用查询内部 缓存有无数据,有数据则获取数据,无数据返回错误码

参数
handle[IN] 设备句柄
pData[OUT] 图像数据接收指针
nDataSize[IN] 接收缓存大小
pstFrameInfo[OUT] 图像信息结构体
nMsec[IN] 等待超时时间
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 每次调用该接口,将查询内部缓存是否有数据,如果有数据则转换成RGB24格式返回,如果没有数据则返回错误码。因为图像转换成RGB24格式有耗时,所以当数据帧率过高时该接口可能会导致丢帧。
 • 调用该接口获取图像数据帧之前需要先调用 MV_CC_StartGrabbing() 启动图像采集。该接口为主动式获取帧数据,上层应用程序需要根据帧率,控制好调用该接口的频率。

◆ MV_CC_GetImageForBGR()

MV_CAMCTRL_API int __stdcall MV_CC_GetImageForBGR ( IN void *  handle,
IN OUT unsigned char *  pData,
IN unsigned int  nDataSize,
IN OUT MV_FRAME_OUT_INFO_EX pstFrameInfo,
int  nMsec 
)

获取一帧BGR数据,此函数为查询式获取,每次调用查询内部 缓存有无数据,有数据则获取数据,无数据返回错误码

参数
handle[IN] 设备句柄
pData[OUT] 图像数据接收指针
nDataSize[IN] 接收缓存大小
pstFrameInfo[OUT] 图像信息结构体
nMsec[IN] 等待超时时间
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 每次调用该接口,将查询内部缓存是否有数据,如果有数据则转换成BGR24格式返回,如果没有数据则返回错误码。因为图像转换成BGR24格式有耗时,所以当数据帧率过高时该接口可能会导致丢帧。
 • 调用该接口获取图像数据帧之前需要先调用 MV_CC_StartGrabbing() 启动图像采集。该接口为主动式获取帧数据,上层应用程序需要根据帧率,控制好调用该接口的频率。

◆ MV_CC_GetImageBuffer()

MV_CAMCTRL_API int __stdcall MV_CC_GetImageBuffer ( IN void *  handle,
OUT MV_FRAME_OUT pstFrame,
IN unsigned int  nMsec 
)

使用内部缓存获取一帧图片(与 MV_CC_Display() 不能同时使用)

参数
handle[IN] 设备句柄
pstFrame[OUT] 图像数据和图像信息
nMsec[IN] 等待超时时间,输入INFINITE时表示无限等待,直到收到一帧数据或者停止取流
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 调用该接口获取图像数据帧之前需要先调用 MV_CC_StartGrabbing() 启动图像采集。该接口为主动式获取帧数据,上层应用程序需要根据帧率,控制好调用该接口的频率。该接口支持设置超时时间,SDK内部等待直到有数据时返回,可以增加取流平稳性,适合用于对平稳性要求较高的场合。
 • 该接口与 MV_CC_FreeImageBuffer() 配套使用,当处理完取到的数据后,需要用 MV_CC_FreeImageBuffer() 接口将pstFrame内的数据指针权限进行释放。
 • 该接口与 MV_CC_GetOneFrameTimeout() 相比,有着更高的效率。且其取流缓存的分配是由sdk内部自动分配的,而 MV_CC_GetOneFrameTimeout() 接口是需要客户自行分配。
 • 该接口在调用 MV_CC_Display() 后无法取流。
 • 该接口对于U3V、GIGE设备均可支持。
示例
GrabImage_HighPerformance.cpp.

◆ MV_CC_FreeImageBuffer()

MV_CAMCTRL_API int __stdcall MV_CC_FreeImageBuffer ( IN void *  handle,
IN MV_FRAME_OUT pstFrame 
)

释放图像缓存(此接口用于释放不再使用的图像缓存,与 MV_CC_GetImageBuffer() 配套使用)

参数
handle[IN] 设备句柄
pstFrame[IN] 图像数据和图像数据
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 该接口与 MV_CC_GetImageBuffer() 配套使用,使用 MV_CC_GetImageBuffer() 接口取到的图像数据pstFrame,需要用 MV_CC_FreeImageBuffer() 接口进行权限释放。
 • 该接口对于取流效率高于GetOneFrameTimeout接口,且GetImageBuffer在不进行Free的情况下,最大支持输出的节点数与SetImageNode接口所设置的节点数相等,默认节点数是1。
 • 该接口对于U3V、GIGE设备均可支持。
示例
GrabImage_HighPerformance.cpp.

◆ MV_CC_GetOneFrameTimeout()

MV_CAMCTRL_API int __stdcall MV_CC_GetOneFrameTimeout ( IN void *  handle,
IN OUT unsigned char *  pData,
IN unsigned int  nDataSize,
IN OUT MV_FRAME_OUT_INFO_EX pstFrameInfo,
unsigned int  nMsec 
)

采用超时机制获取一帧图片,SDK内部等待直到有数据时返回

参数
handle[IN] 设备句柄
pData[OUT] 图像数据接收指针
nDataSize[IN] 接收缓存大小
pstFrameInfo[OUT] 图像信息结构体
nMsec[IN] 等待超时时间
返回
成功,返回MV_OK;失败,返回错误码
备注
 • 调用该接口获取图像数据帧之前需要先调用 MV_CC_StartGrabbing() 启动图像采集。该接口为主动式获取帧数据,上层应用程序需要根据帧率,控制好调用该接口的频率。该接口支持设置超时时间,SDK内部等待直到有数据时返回,可以增加取流平稳性,适合用于对平稳性要求较高的场合。
 • 该接口对于U3V、GIGE设备均可支持。
示例
ChunkData.cpp, ConnectSpecCamera.cpp, GrabImage.cpp, GrabMultipleCamera.cpp, ImageProcess.cpp, MultiCast.cpp, ReconnectDemo.cpp , 以及 Trigger_Image.cpp.

◆ MV_CC_ClearImageBuffer()

MV_CAMCTRL_API int __stdcall MV_CC_ClearImageBuffer ( IN void *  handle)

清除取流数据缓存

参数
handle[IN] 设备句柄
返回
成功,返回MV_OK ;失败,返回错误码
备注
该接口允许用户在不停止取流的时候,就能清除缓存中不需要的图像。
该接口在连续模式切触发模式后,可以清除历史数据。