图像保存与获取中的改进功能应用

pypylon-opencv-viewer的Python项目详细描述


basler pypypylon opencv viewer for jupyter笔记本

PyPI versionDownloadsLicense: MIT

易于使用的Jupyter笔记本浏览器连接Basler Pylon图像采集和Opencv图像处理。 允许指定交互式jupyter小部件来操作basler相机功能值、抓取相机图像和 一旦获得显示原始相机输出的opencv窗口,或者您可以指定图像处理功能, 它接受输入的原始相机输出图像并显示您自己的输出。

安装

pip install pypylon-opencv-viewer

用法

要开始工作,请启动Jupyter笔记本并连接到Basler摄像头。下面是一个如何做到的示例:

frompypylonimportpylon# Pypylon get camera by serial numberserial_number='22716154'info=Noneforiinpylon.TlFactory.GetInstance().EnumerateDevices():ifi.GetSerialNumber()==serial_number:info=ibreakelse:print('Camera with {} serial number not found'.format(serial_number))# VERY IMPORTANT STEP! To use Basler PyPylon OpenCV viewer you have to call .Open() method on you cameraifinfoisnotNone:camera=pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateDevice(info))camera.Open()

现在我们可以开始使用我们的查看器了。基本上我们需要三件事:连接摄像头,我们想使用的功能 (您可以在official Basler documentation中找到它们,用于 现在这个库只支持布尔和数字特征)以及我们想要应用于抓取的图像处理函数 图像。图像处理功能不是必需的,您不必指定,在这种情况下,您将得到原始的 摄像机输出。

功能列表

功能-听写列表。

dict结构:

  1. name-相机挂架功能名称,例如:“gainraw”(必需)
  2. type-小部件输入类型,允许值intfloatboolint_textfloat_text(可选,默认值:“int”)
  3. value-小部件输入值(可选,默认值:当前相机功能值)
  4. {< CD9> } -最大窗口小部件输入值,只有数值小部件类型(可选的,默认的:相机特征最大值)
  5. min-最小窗口小部件输入值,仅数值窗口小部件类型(可选,默认:相机功能最小值)
  6. {{CD11}} -允许输入值的步骤(可选的,默认的:相机特征增量,如果不存在=1)

配置示例如下:

# List of features to create wigetsfeatures=[{"name":"GainRaw","type":"int"},{"name":"Height","type":"int_text","max":1000,"min":100,"step":"5"},{"name":"Width","type":"int_text","max":1000,"min":100,"step":"5"},{"name":"AcquisitionFrameRateEnable","type":"bool"},{"name":"AcquisitionFrameRateAbs","type":"int","max":60,"min":10}]

示例图像处理功能

例如图像处理功能,它可以使图像负片。图像必须是其中唯一的参数。 如果你想显示一些图像,你必须在函数中自己完成。不要破坏 所有opencv窗口或等待按键。

importnumpyasnpimportcv2defimpro(img):cv2.namedWindow('1',cv2.WINDOW_NORMAL|cv2.WINDOW_GUI_NORMAL)cv2.resizeWindow('1',1080,720)cv2.imshow("1",np.hstack([img,(255-img)]))

查看器

我们已经准备好了所有需要的零件。现在我们只需将它们设置为查看器对象并启动图像捕获: run_interaction_continuous_shot表示连续,或run_interaction_single_shot表示单发。 也可以按“s”按钮将原始相机图像或impro函数返回值保存到image_folder

frompypylon_opencv_viewerimportBaslerOpenCVViewerviewer=BaslerOpenCVViewer(camera)viewer.set_features(features)viewer.set_impro_function(impro)viewer.run_interaction_continuous_shot(image_folder='~/Documents/images')

现在我们看到一些类似的图像,我们可以设置相机特征值。按Run interaction让它消失。 要关闭opencv窗口,只需按键盘上的“q”。你不必再启动这个手机 处理图像,只需更改所需的值并按下按钮。就这样! Basler OpenCV viewerBasler OpenCV viewer

保存或从相机获取图像

在前面的步骤中,我们使用小部件设置相机功能参数。现在我们可以将摄像机图像保存在光盘上,或者 原始opencv图像(如果指定了impro函数返回值)。

# Save imageviewer.save_image('~/Documents/images/grabbed.png')# Get grabbed imageimg=viewer.get_image()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java播放流媒体音乐   LWJGL中的java纹理未显示   java从父集合中删除时删除子对象   mysql希望在我的代码中添加验证,如果表不存在,它应该用java创建新表   java我可以关闭客户端的socket而不引起服务器端的EOFEException吗?   java Primefaces对话框框架咆哮和showMessageInDialog不工作   hadoop配置单元无法初始化类java。网网络接口   关键字中缺少oracle11g Java iBatis   java在RESTAPI中创建PUT和POST端点,而不创建GET端点?   java Math abs和ceil输出编译错误   java Tomcat 8.017代md5及其摘要。球棒   java SpringBean配置xml文件在IteliJ Idea中加载   java为什么在使用Powershell指定Xms和Xmx时,它们什么都不做,但通过Netbeans IDE可以正常工作?   java Drools项目构建失败,kjar打包从7.7版开始