精华内容
下载资源
问答
  • 树莓派图像采集

    2019-09-26 17:19:37
    #include <opencv/cv.h> #include <opencv/highgui.h> #include<stdio.h> #include <iostream> #include<opencv2/opencv.hpp> using namespace cv;...int main(int argc...
    #include <opencv/cv.h>
    #include <opencv/highgui.h>
    #include<stdio.h>
    #include <iostream>
    #include<opencv2/opencv.hpp>
    using namespace cv;
    
    int main(int argc, char *argv[])
    {
          CvCapture* pCapture = cvCreateCameraCapture(0);
          cvNamedWindow("Video", 1);
        int row,column;
        int i,j;    
          while(1)
          {
              IplImage* pFrame=cvQueryFrame( pCapture );
            if(!pFrame)break;
    //        IplImage* gray=cvCreateImage(cvGetSize(pFrame),IPL_DEPTH_8U,1);
    //        cvCvtColor(pFrame,gray,CV_BGR2GRAY);
            column=pFrame->width/2;
            row=pFrame->height/2;
            for(i=0;i<pFrame->width;i++){
                ((uchar*)(pFrame->imageData+row*pFrame->widthStep))[i*pFrame->nChannels+0]=255;
                ((uchar*)(pFrame->imageData+row*pFrame->widthStep))[i*pFrame->nChannels+1]=255;
                ((uchar*)(pFrame->imageData+row*pFrame->widthStep))[i*pFrame->nChannels+2]=255;
            }
            for(j=0;j<pFrame->height;j++){
                ((uchar*)(pFrame->imageData+j*pFrame->widthStep))[column*pFrame->nChannels+0]=255;
                ((uchar*)(pFrame->imageData+j*pFrame->widthStep))[column*pFrame->nChannels+1]=255;
                ((uchar*)(pFrame->imageData+j*pFrame->widthStep))[column*pFrame->nChannels+2]=255;
            }
              cvShowImage("Video",pFrame);
              char c=cvWaitKey(100);//单位毫秒
              if(c==27)break;//按下esc键,摄像停止
          }
          cvReleaseCapture(&pCapture);
          cvDestroyWindow("Video");
          return 0;
    }

    CMakeLists.txt

    # cmake needs this line
    cmake_minimum_required(VERSION 2.8)
    
    # Define project name
    project(cam_video)
    
    # Find OpenCV, you may need to set OpenCV_DIR variable
    # to the absolute path to the directory containing OpenCVConfig.cmake file
    # via the command line or GUI
    find_package(OpenCV REQUIRED)
    
    # If the package has been found, several variables will
    # be set, you can find the full list with descriptions
    # in the OpenCVConfig.cmake file.
    # Print some message showing some of them
    #message(STATUS "OpenCV library status:")
    #message(STATUS "    version: ${OpenCV_VERSION}")
    #message(STATUS "    libraries: ${OpenCV_LIBS}")
    #message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
    
    # Add OpenCV headers location to your include paths
    include_directories(${OpenCV_INCLUDE_DIRS})
    
    # Declare the executable target built from your sources
    add_executable(cam_video cam_video.cpp)
    
    # Link your application with OpenCV libraries
    target_link_libraries(cam_video ${OpenCV_LIBS})

     

    转载于:https://www.cnblogs.com/2Bthebest1/p/7492998.html

    展开全文
  • 树莓派定时采集图像上传到服务器

    万次阅读 热门讨论 2017-12-10 00:02:50
    树莓派采集图片定时上传至服务器 准备图片存储服务器 在做这个系统之前,得先选择一个可以上传图片的服务器,当然,可以自己做一个小服务器,但是我选择了七牛网,因为它是一个免费的云图库,而且我平时写...

    树莓派采集图片定时上传至服务器

    准备图片存储服务器

    在做这个系统之前,得先选择一个可以上传图片的服务器,当然,可以自己做一个小服务器,但是我选择了七牛网,因为它是一个免费的云图库,而且我平时写MarkDown也可以用这个

    先要注册登录,之后,如图操作
    创建一个存储空间picture
    在这里插入图片描述
    然后再进入这个页面记住AK(access_key )和SK(secret_key )。
    在这里插入图片描述

    首先查询七牛的Python调用API可知:

    # -*- coding: utf-8 -*-
    # flake8: noqa
    from qiniu import Auth, put_file, etag, urlsafe_base64_encode
    import qiniu.config
    
    #获取图片
    os.system('raspistill -o current_photo.jpg')
    #需要填写你的 Access Key 和 Secret Key
    access_key = 'Access_Key'
    secret_key = 'Secret_Key'
    
    #构建鉴权对象
    q = Auth(access_key, secret_key)
    
    #要上传的空间
    bucket_name = 'Bucket_Name'
    
    #上传到七牛后保存的文件名
    key = 'my-python-logo.png';
    
    #生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, key, 3600)
    
    #要上传文件的本地路径
    localfile = './sync/bbb.jpg'
    ret, info = put_file(token, key, localfile)
    print(info)
    
    assert ret['key'] == key
    assert ret['hash'] == etag(localfile)
    

    安装七牛云的python SDK

    • 直接安装:
      pip install qiniu

      easy_install qiniu
    • 源码安装
      #从Python SDK 下载地址下载源码
      tar xvzf python-sdk-VERSION.tar.gzcdpython−sdk−VERSION.tar.gz cd python-sdk-VERSION.tar.gzcdpythonsdkVERSION
      python setup.py install
    • 在嵌入式系统中(树莓派)
      sudo pip install qiniu

    代码

    首先建一个get_photo.sh脚本文件

    python get_picture.py 
    

    然后在/home/camera中建立一个文件get_picture.py

    # -*- coding: utf-8 -*-
    
    import time
    from qiniu import Auth, put_file, etag, urlsafe_base64_encode
    import qiniu.config
    import os
    #需要填写你的 Access Key 和 Secret Key
    access_key = '' #这里的密钥填上刚才我让你记住的密钥对
    secret_key = '' #这里的密钥填上刚才我让你记住的密钥对
    
    #构建鉴权对象
    q = Auth(access_key, secret_key)
    
    #要上传的空间
    bucket_name = 'picture'
    
    #上传到七牛后保存的文件名
    key = '%s_%s_%s_%s_%s_%s.jpg'%(time.localtime()[0],time.localtime()[1],time.localtime()[2],time.localtime()[3],time.localtime()[4],time.localtime()[5])
    
    #生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, key, 3600)
    
    #要上传文件的本地路径
    localfile = 'current_photo.jpg'
    
    ret, info = put_file(token, key, localfile)
    
    filename = 'current_photo.jpg'
    if os.path.exists(filename):
        os.remove(filename)
    

    每次执行一次该程序就会自动上传一张图片,现在就差定时部分。

    树莓派/Linux定时执行python脚本

    1. 开启crontab日志。

    crontab默认不开启日志,所以先开启定时任务的日志来查看

    修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf 文件中的 #cron.* 前的 # 删掉;用service rsyslog restart重启rsyslog服务:

    1. 写定时任务

    crontab -e

    开启本用户的定时任务,即创建以本用户名为文件名的定时任务文件,位置在/var/spool/cron/crontabs/。

    定时任务语句格式为:执行周期+命令,周期有5个域,分别是

    分钟,小时,日(day of month),月(month of year),周几(day of week).

    每个域不加限制任意的话用*,整体格式为:* * * * * command

    比如我的脚本是 /home/camera/get_photo.sh

    执行环境为 /usr/bin/python2.7

    每5分钟执行一次

    则语句为

    */5 * * * * /usr/bin/python2.7 /home/camera/get_photo.sh

    写完后重启cron 服务

    service cron restart

    顺便附上常用的周期格式

    每五分钟执行 */5 * * * *

    每小时执行 0 * * * *

    每天执行 0 0 * * *

    每周执行 0 0 * * 0

    每月执行 0 0 1 * *

    每年执行 0 0 1 1 *

    简单总结一下定时脚本:

    crontab -e
    选择vim进入,到末尾输入 o
    然后在末尾加入
    */5 * * * * /home/camera/get_photo.sh
    然后按Esc->:wq->换行退出
    最后重启cron
    sudo service cron restart
    

    实物图

    在这里插入图片描述

    最终在七牛云上看到的效果

    在这里插入图片描述

    展开全文
  • python语言代码,调用树莓派摄像头,实现图像采集功能。
  • 树莓派图像避障小车整理

    千次阅读 2019-04-13 21:07:15
    陀螺仪传感器 ...但是陀螺仪在使用的过程中会有较大的温漂,使得所得到的角度值不准确,所以还需要将陀螺仪与加速度计的信号进行采集处理。从而去掉陀螺仪的过冲、温漂。 制作小车要用差速转向  

    陀螺仪传感器
    陀螺仪可以用来测量物体的旋转角速度。在模型车上安装陀螺仪测量车模型车的倾角速度,再将角速度进行积分便可以的到模型车的真实角度。由于陀螺仪输出的是车模的角速度,不会受到车体运动的影响,因此该信号中噪声很小模型车的角度又是通过对角速度积分而得,这可进一步平滑信号,从而使得角度信号更加稳定。因此车模控制所需要的角度和角速度可以使用陀螺仪所得到的信号。但是陀螺仪在使用的过程中会有较大的温漂,使得所得到的角度值不准确,所以还需要将陀螺仪与加速度计的信号进行采集处理。从而去掉陀螺仪的过冲、温漂。

    制作小车要用差速转向

     

    展开全文
  • 树莓派摄像头——图像/视频采集 1. 资源 1.1 硬件——树莓派专用的CSI接口的摄像头 CSI接口全称CMOS Sensor Interface(CSI) 前端-配置逻辑接口以便支持大多数通用的可用的CMOS摄像头接口。 支持CCIR656视频...

    树莓派摄像头——图像/视频采集

    1. 资源

    1.1 硬件——树莓派专用的CSI接口的摄像头

    树莓派专用摄像头——正面树莓派专用摄像头——反面

    • CSI接口全称CMOS Sensor Interface(CSI)

    1.2 CSI树莓派摄像头安装

    在这里插入图片描述

    2. 安装摄像头软件

    2.1 系统软件更新

    sudo apt-get update
    sudo apt-get upgrade
    

    2.2 打开摄像头支持

    sudo raspi-config
    
    • 选择 <5>接口选项

    在这里插入图片描述

    • 选择 P1 摄像头 → Enable使能
      在这里插入图片描述
    raspistill -v -o test.jpg
    

    3. raspistill 功能测试——图像、视频采集

    3.1 创建shell脚本

    • getVideo.sh
    #!/bin/sh
    begin="Camera is working now!"
    echo $val
    raspivid -o video.h264 -t 4000
    
    • getPic.sh
    #!/bin/sh
    begin="Getting picture by camera now!"
    finsh="WORK FINSHED!"
    echo $begin
    raspistill -v -o getPic.jpg
    echo $finsh
    

    3.2 开启shell脚本权限

    在这里插入图片描述

    3.3 测试运行

    3.3.1 视频采集测试

    ./getVideo.sh
    
    • 采集的视频

    在这里插入图片描述

    在这里插入图片描述

    3.3.1 图片采集测试

    ./getPic.sh
    

    在这里插入图片描述

    参考了很多大佬,总结了一下。

    展开全文
  • 基于树莓派的嵌入式Linux多线程图像采集方法
  • 树莓派-WebCamera图像采集(OpenCV)

    千次阅读 2015-07-31 18:00:40
    (1)在树莓派USB接口中插入webcamera,使用如下命令检测是否检测到...(2)编写代码,流程很简单,首先获取摄像头,然后再while(1)中显示采集到的视频,按下esc退出图像采集。 #include #include #inc
  • opencv采集树莓派相机图像信息

    千次阅读 2018-03-23 18:05:12
    平台树莓派pi3通过opencv读取图像,不需要picamera。可能是因为自己不习惯吧。特次记下来方便后面的应用。 首先opencv读取相机,是读取/dev文件下的video0. 具体操作如下: 1.打开/etc/下面的modules-load.d/rpi-...
  • 树莓派3B实现人脸图像采集与识别

    千次阅读 2019-01-22 18:22:27
    树莓派3B+平台搭载了Linux嵌入式系统,在Linux(Ubuntu 16.04)上安装python、OpenCV和tensorflow便可以组成一台mini主机用于数据处理。其硬件系统介绍如下: 博通BCM2837B0 SoC,集成四核ARM Cortex-A53(ARMv8)...
  • [1]树莓派控制摄像头采集图像

    千次阅读 2017-02-27 20:02:42
    待续
  • 而有时可能我们需要自己采集数据,这里我用树莓派加上一个广角摄像头完成了我的采集任务。如果可以,我们还可以在网上去爬一些数据回来,这里我用了github上的一个小工具,效果还不错。 准备 树莓派 us...
  • 智能小车的前置摄像机实时采集前方的图像,调整底部舵机和顶部舵机的角度,使轨道能被摄像机捕捉到并将采集到的图像传回树莓派系统。利用OpenCV对图像进行处理,系统通过处理后得到的图像信息调整小车的运动状态,使...
  • 树莓派通过官方摄像头进行运动检测,当检测到有动作发生,将该帧图像通过tcp协议实时传输到pc端
  • #树莓派学习笔记一pi(记录自己走过的坑) 关于树莓派read only问题(只读问题) 网上方法很多 ,使用之后也能解决。 但是我遇到了一个新问题 就是开机时好好的,一会就陷入只读状态,一些操作就限制住了。 问题原因...
  • 介绍了一种基于FPGA和Camera link协议的图像采集系统设计方案。设计中将接口信号和图像数据转换为低压差分信号(LVDS)进行传输,提高了信号的精度和传输距离。阐述了具体的硬件接口电路设计以及接口信号程序设计,并...
  • 手机控制树莓派云台并传回图像 本文是对https://blog.csdn.net/wangzhenyang2/article/details/81606700的实际演示 通过树莓派摄像头传回实时图像给手机APP 与推文不同推文不同,不需要设置树莓派热点,树莓派热点...
  • 基于Tiny210的图像采集 1、串口终端 CMOS 树莓派 OV7670摄像头 [root@FriendlyARM web-cam]# [15279.408438] usb 1-1.3: new high speed USB device number 5 using s5p-ehci [15279.598686] uvcvideo: Found ...
  • 前期工作要安装很多个库(下节补上) 现在直接上代码:
  • 判断是否成功采集 46 fprintf(stdout, " Can't grab images!\n " ); 47 break ; 48 } 49 cvAbsDiff(pFrameB,pFrameA,pFrameDiff); // 计算两幅图像的差异 50 cvCopy(pFrameA,pFrameB); // 复制...
  • 使用v4l2在树莓派上抓取视频图像

    千次阅读 2018-11-24 16:16:16
    最近学习使用v4l2在树莓派上抓取视频图像。有些收获,现在分享给大家。 操作的过程为:1、打开摄像头;2、获取摄像头的capability(它所支持的操作)3、获取摄像头支持哪些视频/图片帧格式;4、设置视频/图片/帧...
  • 本文就总结一下之前做的一个项目吧,在树莓派中利用摄像头进行图像识别,将数码管中的数字识别出来,然后远程发送到服务器上。先来看看系统实物图: 1、软件方面,使用Python作为编程语言,简单做了个下位机界面....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 933
精华内容 373
关键字:

树莓派图像采集