微信企业网站html5模板,网站后台上传图片无法显示,图书馆馆建设网站,wordpress4.5的主题SpinnakerSDK_FULL_4.0.0.116_x64 是一个用于FLIR相机的SDK#xff0c;主要用于图像采集和处理。Spinnaker SDK主要提供C接口#xff0c;无法直接应用在python环境。本文则基于Pycharm2019python3.7的环境下#xff0c;调用opencv,EasySpin,PySpin,的库实现POINTGREY工业级相…SpinnakerSDK_FULL_4.0.0.116_x64 是一个用于FLIR相机的SDK主要用于图像采集和处理。Spinnaker SDK主要提供C接口无法直接应用在python环境。本文则基于Pycharm2019python3.7的环境下调用opencv,EasySpin,PySpin,的库实现POINTGREY工业级相机的开发。
1.Spinnaker SDK 首先需要去Spinnaker SDK | Teledyne FLIR官网上下载相应的SDK
选择WINDOWS,解压得到一下文件 下载Latest Spinnaker Full SDK中的SDK
下载完成后打开SpinView查看是否有用之前想做FlyCapture但是FlyCapture打不开
2.PycharmPython的环境可自行配置 3.EasyPySpin库 在查找相关资料的时候在git-hub上找到了一个库该库能够实现用opencv的方式调用Spinnaker的摄像头方便后续的图像处理。 elerac/EasyPySpin: cv2.VideoCapture like wrapper for FLIR Spinnaker SDK (github.com) https://github.com/elerac/EasyPySpin 相关使用说明在其中在Pycharm中能够通过Seting搜索 进行下载
4.PySpin 如果只调用EasyPySpin的库直接运行程序会提示缺少PySpin的库函数因此需要安装PySpin库该库不能通过setting进行安装需要
利用 Latest Python Spinnaker中的whl文件进行安装
选择对应版本的Spin(其中cp是对应python的版本)
然后安装whl的文件
使用pip install 文件名.whl
5.运行Example程序 A simple example of capturing and displaying an image import EasyPySpin import cv2 def main(): cap EasyPySpin.VideoCapture(0) if not cap.isOpened(): print(Camera cant open\nexit) return -1 cap.set(cv2.CAP_PROP_EXPOSURE, -1) # -1 sets exposure_time to auto cap.set(cv2.CAP_PROP_GAIN, -1) # -1 sets gain to auto while True: ret, frame cap.read() # frame cv2.cvtColor(frame, cv2.COLOR_BayerBG2BGR) # for RGB camera demosaicing img_show cv2.resize(frame, None, fx0.25, fy0.25) cv2.imshow(press q to quit, img_show) key cv2.waitKey(30) if key ord(q): break cap.release() cv2.destroyAllWindows() if __name__ __main__: main()
结果如下
A simple example of capturing and displaying an image import EasyPySpin import cv2 import numpy as np import math import copy def main(): cap EasyPySpin.VideoCapture(0) if not cap.isOpened(): print(Camera cant open\nexit) return -1 frameNum 0 cap.set(cv2.CAP_PROP_EXPOSURE, -1) # -1 sets exposure_time to auto 自动曝光时间 cap.set(cv2.CAP_PROP_GAIN, -1) # -1 sets gain to auto 自动增益 while True: ret, frame cap.read() # frame cv2.cvtColor(frame, cv2.COLOR_BayerBG2BGR) # for RGB camera demosaicing frameNum 1 if ret True: tempframe frame if (frameNum 1): previousframe frame print(111) if (frameNum 2): currentframe tempframe currentframe cv2.absdiff(currentframe, previousframe) #帧差法图 median cv2.medianBlur(currentframe, 3) #中值滤波 ret, threshold_frame cv2.threshold(currentframe, 20, 255, cv2.THRESH_BINARY) gauss_image cv2.GaussianBlur(threshold_frame, (3 ,3), 0) contours, hierarchy cv2.findContours(threshold_frame, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) yuantu_show cv2.resize(frame, None, fx0.25, fy0.25) intital_show cv2.resize(frame, None, fx0.25, fy0.25) img_show cv2.resize(gauss_image, None, fx0.25, fy0.25) # 画出矩形轮廓 for i in range(0, len(contours)): x, y, w, h cv2.boundingRect(contours[i]) cv2.rectangle(yuantu_show, (x, y), (x w, y h), (255, 255, 0), 2) #图片显示 cv2.imshow(yuantu, intital_show) cv2.imshow(lunkou, yuantu_show) # 原图显示 #cv2.imshow(tuxiangchuli, img_show) # 经过高斯滤波之后 #cv2.imshow(lvbo, median) #时间延迟 key cv2.waitKey(30) #按q退出 if key ord(q): break #释放内存 cap.release() cv2.destroyAllWindows() if __name__ __main__: main()
利用帧差法进行视频的图像处理