当前位置: 首页 > news >正文

怎么做的网站怎么放上网免费邮箱域名注册163

怎么做的网站怎么放上网,免费邮箱域名注册163,sem和seo是什么职业岗位,做暖暖视频免费观看免费网站首先打开海康机器人-机器视觉-下载中心 下载最新版的 MVS 安装后打开目录找到 ...\MVS\Development\Samples\Python 将MvImport内所有文件拷贝至工作目录 然后到 C:\Program Files (x86)\Common Files\MVS\Runtime 找到适合自己系统的版本,将整个文件夹拷贝至工…

首先打开海康机器人-机器视觉-下载中心

下载最新版的 MVS

安装后打开目录找到

...\MVS\Development\Samples\Python

将MvImport内所有文件拷贝至工作目录

然后到

C:\Program Files (x86)\Common Files\MVS\Runtime

找到适合自己系统的版本,将整个文件夹拷贝至工作目录,并重命名为lib,方便后期移植

完成上述操作后,工作目录是这样的:

打开MvCameraControl_class.py 找到

由于python3.8往后的版本导入动态链接库的机制发生了改变,因此这里时常会导入失败(2025-4-5)

因此需要更改为

*动态链接库的位置在刚刚更改名字的lib文件夹内,需根据实际情况做更改*

创建一个新的py文件(我的叫HKCamera.py)用于创建相机类,方便进行相机任务

在这个新的py文件中,创建一个类,用于创建句柄、开启流等操作

class Camera:#初始化def __init__(self):...#打开相机def _open(self):...#关闭相机def _close(self):...#获取图像数据def get_img(self):...

初始化中,可以选择是否查看设备信息,并打开相机,方便取流

    def __init__(self,camera_index):"""初始化参数:param camera_index:相机索引,未装驱动电脑索引从0开始,装了驱动的从1开始"""#设备信息表初始化self._deviceList = MV_CC_DEVICE_INFO_LIST()#设备类型self._tlayerType = MV_USB_DEVICE#相机实例self._cam = MvCamera()#相机参数self._stParam = None#数据包大小self._nPayloadSize = None#数据流self._data_buf = None#相机索引self._camera_index = camera_index#相机型号等打印self._Show_info = True#获取设备信息MvCamera.MV_CC_EnumDevices(self._tlayerType, self._deviceList)#打印设备信息if self._Show_info:self._print_debug_info()#打开相机流self._open()

设备型号打印函数:

    def _print_debug_info(self):mvcc_dev_info = cast(self._deviceList.pDeviceInfo[self._camera_index], POINTER(MV_CC_DEVICE_INFO)).contentsif mvcc_dev_info.nTLayerType == MV_USB_DEVICE:print("\n设备列表: [%d]" % self._camera_index)strModeName = ""for per in mvcc_dev_info.SpecialInfo.stUsb3VInfo.chModelName:if per == 0:breakstrModeName = strModeName + chr(per)print("设备名称: %s" % strModeName)strSerialNumber = ""for per in mvcc_dev_info.SpecialInfo.stUsb3VInfo.chSerialNumber:if per == 0:breakstrSerialNumber = strSerialNumber + chr(per)print("串行代号: %s" % strSerialNumber)

成功打开后会看到(先注释掉_open函数,再运行):

然后完善open函数,打开相机流

    def _open(self):"""打开设备:return: """if int(self._camera_index) >= self._deviceList.nDeviceNum:print("索引相机失败!")sys.exit()#创建相机实例stDeviceList = cast(self._deviceList.pDeviceInfo[int(self._camera_index)], POINTER(MV_CC_DEVICE_INFO)).contentsret = self._cam.MV_CC_CreateHandle(stDeviceList)if ret != 0:print("相机打开错误: 相机索引创建句柄失败! 错误码:[0x%x]" % ret)sys.exit()#打开设备ret = self._cam.MV_CC_OpenDevice(MV_ACCESS_Exclusive, 0)if ret != 0:print("相机打开错误: 设备打开失败! 错误码:[0x%x]" % ret)sys.exit()ret = self._cam.MV_CC_SetEnumValue("TriggerMode", MV_TRIGGER_MODE_OFF)if ret != 0:print("相机打开错误: 触发模式设置失败! 错误码:[0x%x] ret[0x%x]" % ret)sys.exit()#获取数据包大小self._stParam = MVCC_INTVALUE()memset(byref(self._stParam), 0, sizeof(MVCC_INTVALUE))ret = self._cam.MV_CC_GetIntValue("PayloadSize", self._stParam)if ret != 0:print("相机打开错误: 数据包大小获取失败! 错误码:[0x%x]" % ret)sys.exit()self._nPayloadSize = self._stParam.nCurValue# ch:开始取流 | en:Start grab imageret = self._cam.MV_CC_StartGrabbing()if ret != 0:print("取流失败: 开始取流失败! 错误码:[0x%x]" % ret)sys.exit()

打开相机可以看作是一个流程,一个流程过完才能过下一个流程

分别是   

创建相机实例   ->  打开设备  ->  获取数据包大小  ->  开始取流

然后就是get_img函数了,这个函数是获取相机图像的

将相机的图像buffer转化成opencv能够识别的图像数据

    def get_img(self):"""获取一帧图像:return: """#创建图像信息表stDeviceList = MV_FRAME_OUT_INFO_EX()#初始化图像信息表memset(byref(stDeviceList), 0, sizeof(stDeviceList))#创建原始图像信息表self._data_buf = (c_ubyte * self._nPayloadSize)()#采用超时机制获取一帧图片,SDK内部等待直到有数据时返回ret = self._cam.MV_CC_GetOneFrameTimeout(byref(self._data_buf), self._nPayloadSize, stDeviceList, 1000)if ret == 0:# print("get one frame: Width[%d], Height[%d], nFrameNum[%d]" % (stDeviceList.nWidth, stDeviceList.nHeight, stDeviceList.nFrameNum))#配置图像参数nRGBSize = stDeviceList.nWidth * stDeviceList.nHeight * 3stConvertParam = MV_SAVE_IMAGE_PARAM_EX()stConvertParam.nWidth = stDeviceList.nWidthstConvertParam.nHeight = stDeviceList.nHeightstConvertParam.pData = self._data_bufstConvertParam.nDataLen = stDeviceList.nFrameLenstConvertParam.enPixelType = stDeviceList.enPixelTypestConvertParam.nImageLen = stConvertParam.nDataLenstConvertParam.nJpgQuality = 70stConvertParam.enImageType = MV_Image_JpegstConvertParam.pImageBuffer = (c_ubyte * nRGBSize)()stConvertParam.nBufferSize = nRGBSize# ret = cam.MV_CC_ConvertPixelType(stConvertParam)# print(stConvertParam.nImageLen)#覆盖上一帧图像ret = self._cam.MV_CC_SaveImageEx2(stConvertParam)if ret != 0:print("convert pixel fail ! ret[0x%x]" % ret)del self._data_bufsys.exit()#获取图像信息img_buff = (c_ubyte * stConvertParam.nImageLen)()cdll.msvcrt.memcpy(byref(img_buff), stConvertParam.pImageBuffer, stConvertParam.nImageLen)# 将 ctypes 数组转换为 NumPy 数组_img_array = np.frombuffer(img_buff, dtype=np.uint8)# 使用 cv2.imdecode 解码图像_image = cv2.imdecode(_img_array, cv2.IMREAD_COLOR)return _image

(可选)

最后是关闭相机函数

    def _close(self):ret = self._cam.MV_CC_StopGrabbing()if ret != 0:print("相机关闭失败: 停止取流失败! 错误码:[0x%x]" % ret)del self._data_bufsys.exit()ret = self._cam.MV_CC_CloseDevice()if ret != 0:print("相机关闭失败: 设别关闭失败! 错误码:[0x%x]" % ret)del self._data_bufsys.exit()ret = self._cam.MV_CC_DestroyHandle()if ret != 0:print("相机关闭失败: 句柄销毁失败! 错误码:[0x%x]" % ret)del self._data_bufsys.exit()del self._data_buf

至此相机已经可以调用并使用啦

#实例
def main():camera = Camera(0)while True:img = camera.get_img()cv2.imshow('img', img)if cv2.waitKey(1) & 0xff == 27:breakif __name__ == '__main__':main()

感谢:

Python海康相机api---超简单入坑学习必看_python海康相机连接教程-CSDN博客

Python 实现海康机器人工业相机 MV-CU060-10GM 的实时显示视频流及拍照功能 - 龙凌云端 - 博客园

win11 python调用dll问题:FileNotFoundError: Could not find module ‘xxx.dll‘ (or one of its dependencies)_filenotfounderror: could not find module 'nvcuda.d-CSDN博客

http://www.dtcms.com/a/534766.html

相关文章:

  • 怎么生成网站源代码北京网站建设公司报价
  • 镇江企业网站排名优化企业网站建立流程
  • 中装建设网站域名有永久的吗
  • 南昌做网站建设哪家好wordpress 主题 英文版
  • 无锡企业建站模板汕头网站推广seo
  • 站长平台怎么添加网站苏州seo门户网
  • wordpress个人网站备案管理桌子seo关键词
  • 网站建设技术标准亚马逊产品开发流程8个步骤
  • 网站建网站建站莱州一中网站
  • wordpress 多站点 多域名jsp怎么做网站
  • 做网站的是些什么公司医疗行业网站策划
  • 厚街手机网站建设超市型网站开发
  • 花店网站设计wordpress超炫模板
  • 培训行业门户网站建设人网站建站
  • 自己做网站网页剧中cms建站程序哪个好
  • 中国月球空间站wordpress谷歌插件
  • 青岛网站设计机构江苏建站服务
  • 中山网站建设工作市场营销四大基本内容
  • 建设银行官网首页 网站能自己做照片书的有哪些网站
  • 网站底部模板源码洛可可设计公司估值
  • h5网站建设方案.doc湖南营销型网站建设价格
  • 大学国际化网站建设个人网站设计模板中文
  • 网站大全软件下载工程施工合同协议书范本
  • 什么样的网站开发比较吃香中国建筑集团有限公司官网测评网址
  • 广州网站开发定制需要多少钱永川网站设计
  • 微擎微网站开发网络科技公司网站源码
  • 谷歌网站站长指南网站设计的要求有哪些
  • 渭南网站制作学校播州区建设局网站
  • 如何与对方网站做相互链接做优化网站注意什么
  • 展示型网站建设流程网页怎么绑定wordpress