我的kivy小程序

  • 安装
  • 实验一
    • 界面
    • 摄像头驱动
    • 主程序
  • 实验二
  • 实验三
  • 实验四

安装

更新pip 工具为最新版,因为在国内这里使用了清华源

python -m pip install --upgrade pip wheel setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple

安装基本依赖
i

python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew -i https://pypi.tuna.tsinghua.edu.cn/simple

安装kivy

python -m pip install kivy -i https://pypi.tuna.tsinghua.edu.cn/simple -i https://pypi.tuna.tsinghua.edu.cn/simple

做一个小程序测试是否ok

import os
os.environ['KIVY_IMAGE'] = 'pil,sdl2'
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):def build(self):return Button(text='Hello World')
TestApp().run()

如果弹出对话框和按钮代表安装ok了

实验一

我做一个调试双目摄像头的小程序,内容很简单
1、在界面中两个图框能够同时实时显示L和R两个摄像头的画面
2、一个按键能够捕获两个摄像头当前帧图片并分别起名为test_lX,test_rX(X为顺序数字)保存在image文件夹中
3、能将每次捕获的图片显示在当前程序中
程序已打包成.exe 在我的下载中

界面

kivy中可以把界面和主程序写在一个py文件中也可以单独写一个ky文件,我们只有一个界面也就只用了一个kv文件

#:import Factory kivy.factory.FactoryMainScreen:
<MainScreen>:BoxLayout:canvas.before:Color:rgba: 255,240,245, 0GridLayout:rows:2BoxLayout:KivyCamera:id:cv2cam_lBoxLayout:KivyCamera:id:cv2cam_rBoxLayout:rows:3orientation: 'vertical'BoxLayout:Image:id:image_ltext: 'left'Image:id:image_rtext: 'right'BoxLayout:Button:id:button2BoxLayout:Button:id:button1text: 'CAPTURE'<MyPopup@Popup>:title: 'Test'size_hint: None, Nonesize: 400, 400

界面是这样滴

摄像头驱动

class KivyCamera(Image):def __init__(self, **kwargs):super(KivyCamera, self).__init__(**kwargs)self.capture = Noneself.clock_event = Nonedef start(self, capture, fps=30):self.capture = captureself.clock_event = Clock.schedule_interval(self.update, 1.0 / fps)def stop(self):Clock.unschedule(self.clock_event)if self.capture != None:self.capture.release()def update(self, dt):ret, frame = self.capture.read()if ret:# frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # 彩色转灰度# convert it to texturebuf1 = cv2.flip(frame, 0)buf = buf1.tostring()texture1 = Texture.create(size=(frame.shape[1], frame.shape[0]), colorfmt='bgr')texture1.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')self.texture = texture1

主程序

class MainScreen(BoxLayout):num = 0def dostart(self,*largs):self.capturel = cv2.VideoCapture(1)self.capturer = cv2.VideoCapture(2)self.ids.cv2cam_l.start(self.capturel)self.ids.cv2cam_r.start(self.capturer)self.ids.button1.bind(on_release=self.release)self.ids.button2.bind(on_release=self.press)def press(self,instance):self.ids.image_l.source = ''self.ids.image_r.source = ''def release(self,instance):img_l = self.ids.cv2cam_l.frameimg_r = self.ids.cv2cam_r.framecname_l = 'img/test_l'+str(self.num)+'.png'cname_r = 'img/test_r' + str(self.num) + '.png'cv2.imwrite(cname_l,img_l)cv2.imwrite(cname_r,img_r)self.ids.image_l.source = cname_lself.ids.image_r.source = cname_rself.num += 1

完成后是这样滴

实验二

使用opencv进行双目摄像头的标定

实验三

生成距离点云图

实验四

对特定物体进行检测,检测其长、宽、高并计算体积

kivy调用摄像头(未完)相关推荐

  1. Android调用摄像头--农民伯伯原文

    Android开发指南(33) -- Multimedia and Camera - Camera 前言 本章内容为Android开发者指南的 Framework Topics/Multimedia ...

  2. ncnn opencv VS2017 window10 yolov5调用摄像头实时目标检测

    Contents 环境下载.编译 1 OpenCV-4.5.4下载.配置 2 CMake下载安装.配置 3 下载.编译protobuf-3.4.0 4 下载.编译ncnn VS2017新建项目--编译 ...

  3. mui教程2——窗口管理、调用相册、调用摄像头、调用重力感应、微信朋友圈界面(仿制)分析

    一.窗口管理 1,页面初始化 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5 ...

  4. web/html5调用摄像头实现二维码扫描效果(代码实例)

    本文给大家介绍如何用web/html5调用摄像头实现二维码扫描的效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 利用html5(navigator.getUserMedia)调 ...

  5. 前端使用navigator.mediaDevices.getUserMedia和window.MediaRecorder实现调用摄像头录制视屏

    前端使用navigator.mediaDevices.getUserMedia和window.MediaRecorder实现调用摄像头录制视屏 一.navigator.mediaDevices.get ...

  6. 创建型模式——Factory Method(未完)

    当对某个对象的实例化代码散布在整个项目中的时候,似乎你已经可以嗅到坏味道了,我们叫做"创建蔓延".除非你肯定这个对象的实例化方法永远不会改变,否则最后将"创建的知识搬迁到 ...

  7. javascript有用小功能总结(未完待续)

    1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...

  8. android: 调用摄像头拍照

    很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄 ...

  9. python调用摄像头人脸识别代码_利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别...

    用已经搭建好 face_recognition,dlib 环境来进行人脸识别 未搭建好环境请参考: 使用opencv 调用摄像头 import face_recognition import cv2 ...

最新文章

  1. 创建支持ssh的docker镜像
  2. nacos 配置动态刷新_Nacos 动态刷新@RefreshScope 【实现配置和实例刷新】
  3. 关于Crypto.PublicKey.RSA,在generate后无法被赋值问题
  4. P1377 [TJOI2011]树的序 笛卡尔树优化建树
  5. Python GIL
  6. 168输出为861java_AcWing 861. 二分图的最大匹配-java-关键处注释
  7. python爬虫的时候要用的url修改方法总结
  8. Dubbo-Admin 2.7 本地安装和部署
  9. Linux系统负载查询
  10. [2018.03.14 T2] 树(tree)
  11. labview rtm_下载Vista RTM
  12. 【8】同步vscode配置和插件【导入导出】、再也不用担心换电脑重新安装插件了
  13. 小工具 | 横断面面积及土方量计算excel表格
  14. 树莓派安装opencv3.4.3时缺少boostdesc等文件及一些常见的报错
  15. 2020云栖大会-达摩院
  16. lisp钢管_图纸管道材料代号说明
  17. 电力电子中的宽禁带器件
  18. angularjs与jquery特效slidetoggle结合
  19. 2022/1/23(每周总结)
  20. whistle工具常用功能

热门文章

  1. codeforces-1131D Gourmet choice(拓扑排序)
  2. ArcGIS:如何利用模型构建器(ModelBuilder)解决基于人口和已有商业点的商业连锁店选址问题?
  3. 我国疫苗监管体系通过世卫组织新一轮评估
  4. 营销方式该怎么去定位
  5. Java基础 - 内部类03 - 匿名内部类详解
  6. java sleep异常_sleep方法要求处理中断异常:InterruptedException
  7. wireshark教程
  8. 2022双十一激光投影仪哪个好?当贝激光投影系列 高品质大品牌更有保障
  9. html边框上的小箭头,css简单实现带箭头的边框
  10. sysinfo(系统调用)