调用海康工业相机(gige),读取数据流并转为opencv(numpy)矩阵格式
参考官方开发案例
GrabImage.py
,对数据流相机转换
def work_thread(cam=0, pData=0, nDataSize=0):
stFrameInfo = MV_FRAME_OUT_INFO_EX()
memset(byref(stFrameInfo), 0, sizeof(stFrameInfo))
while True:
ret = cam.MV_CC_GetOneFrameTimeout(pData, nDataSize, stFrameInfo, 1000)
if ret == 0:
print("get one frame: Width[%d], Height[%d], PixelType[0x%x], nFrameNum[%d]" % (stFrameInfo.nWidth, stFrameInfo.nHeight, stFrameInfo.enPixelType, stFrameInfo.nFrameNum))
image = np.asarray(pData._obj)
image = image.reshape((stFrameInfo.nHeight, stFrameInfo.nWidth))
cv2.imshow("", image)
cv2.waitKey(1)
else:
print("no data[0x%x]" % ret)
if g_bExit == True:
cv2.destroyAllWindows()
break
说明:官方案例中数据流为data_buf
,可直接使用np.asarray(data_buf)
转换;work_thread
中pData = byref(data_buf)
,需要取值。
unsigned int nRecvBufSize = 0;
MVCC_INTVALUE stParam;
memset(&stParam, 0, sizeof(MVCC_INTVALUE));
int tempValue = MV_CC_GetIntValue(hik_hDevHandle, "PayloadS.
GrabImage.pyGrabImage.py抓取了一帧图片,是数据流,我们要解析成图片输入到YOLO里,图片是通过MvCameraControl_class类里的MV_CC_GetOneFrameTimeout函数抓取的,MV_CC_GetOneFrameTimeout是通过动态库MvCameraControl.dll封装的,不过我们只需要解流就好,看 ConvertPixelType.py里...
def Work_thread(self):
# ch:创建显示的窗口 | en:Create the window for display
cv2.namedWindow(str(self.n_win_gui_id),0)
cv2.resizeWindow(str(self.n_win_gui_id), 500, 500)
stFrameInfo = MV_FRAME_OUT_INFO_EX()
img_buff = N.
在Android中,调用Email有三种类型的Intent: Intent.ACTION_SENDTO 无附件的发送 Intent.ACTION_SEND 带附件的发送 Intent.ACTION_SEND_MULTIPLE 带有多附件的发送 【方法1】使用SENTTO发送 12345678910Intent data=new Intent(Intent.ACTION_SENDTO); data....
在前两章内笔者详细叙述了如何编译以及加载opencv库,本文将从opencv出发,在linux系统下利用海康工业摄像机的SDK完成基于海康工业相机的opencv开发算法。包含:1.海康工业相机的驱动;2.工业相机的帧格式转换;以上就是今天要讲的内容,本文介绍了linux下海康GigE相机在opencv下的使用,同时在代码类里包括了相机参数调整和帧格式的转换操作,笔者有空再进行详细地阐述。