猩猩の點燈
这个作者很懒,什么都没留下…
展开
-
Linux环境应用编程(九):Camera
一:V4L2简介1、概念V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动,为驱动和应用程序提供了一套统一的接口规范。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写。可以支持多种设备,它可以有以下几种接口:(1)视频采集接口(video capture interface):这种应用的设备可以是高频头或者摄像头.V4L2的最初设计就是应用于这种功能的.(2)视频输出接口(video output interface):可以驱.原创 2020-11-02 09:55:09 · 1253 阅读 · 0 评论 -
Linux环境应用编程(四):多线程编程
一:线程概念 线程,操作系统所能调度的最小单位。典型的UNIX进程可以看成只有一个控制线程:一个进程在某一时刻只能做一件事情,有了多个控制线程以后,某一时刻每个线程都可以独立处理自己的任务。这种方法有许多好处:通过为每种事件类型分配单独的处理线程,可以简化处理异步事件的代码。每个线程在进行事件处理时可以采用同步编程模式,同步编程模式要比异步编程模式简单的多。 与进程不同的是多线程可以自动的访问相同的存储地址空间和文件描述符。 有些问题可以分解为多线程执行从而提高整个程序的吞吐量。...原创 2020-07-22 10:29:02 · 349 阅读 · 0 评论 -
Linux环境应用编程(九):串口
一:串口概述 UART的操作主要可分为以下几个部分:数据发送,数据接收,产生中断,设置波特率,Loopback模式,红外模式以及硬软流控模式。在Linux中,所有的设备文件一般都是位于“/dev”下,其中串口1和串口2对应的设备名依次为“/dev/ttyS0”和“/dev/ttyS1”,而且USB转串口的设备名通常为“/dev/ttyUSB0”和“/dev/ttyUSB1”,可以查看在“/dev”下的文件以确认,在Linux下对设备的操作方法与对文件的操作方法是一样的,因此对串口的读写就...原创 2020-12-17 10:37:28 · 846 阅读 · 0 评论 -
Linux环境应用编程(八):输入系统
一:输入系统输入系统介绍和驱动参考:https://blog.csdn.net/qq_34968572/article/details/89875957输入系统事件的读取和分析:1、获取与事件对应相关的设备信息指令:cat /proc/bus/input/devices参数对应含义:I:设备IDstruct input_id { __u16 bustype; //总线类型 __u16 vendor; //与厂商相关的ID __u16 product; //与产品相原创 2020-07-17 15:16:23 · 422 阅读 · 0 评论 -
Linux环境应用编程(七):图像处理
一:图像工具安装1、JPEG文件格式转换工具安装(1)下载解压tar xzf libjpeg-turbo-1.2.1.tar.gz(2)交叉编译创建临时安装目录tmp:mkdir tmpjun@zero:~/work/file/application/02_picture/lib/libjpeg-turbo-1.2.1$ ./configure --host=arm-linux-gnueabihf --prefix=/home/jun/work/file/application/02_p原创 2020-07-17 09:53:02 · 1082 阅读 · 0 评论 -
Linux环境应用编程(三):进程间通讯
一:进程介绍1、进程概念 进程是具有一定独立功能的程序在一个数据集合上的一次动态执行过程。它是动态的,包括创建、调度、执行和消亡(由操作系统完成的)。2、进程的操作a.创建进程头文件: #include <unistd.h>函数原型: pid_t fork(void);返回值: 成功时,父进程返回子进程的进程号(>0的非零整数),子进程中返回0;通过fork函数的返回值区分父子进程。父进程: 执行fork函数的进程。子进程: 父进程调用f...原创 2020-07-21 14:37:31 · 499 阅读 · 0 评论 -
Linux环境应用编程(六):Framebuffer
一:Framebuffer API1、int open(const char *pathname, int flags)示例:int fd_fb;fd_fb = open("/dev/fb0", O_RDWR);2、int ioctl(int fd, unsigned long request, ...)示例:struct fb_var_screeninfo var;ioctl(fd_fb, FBIOGET_VSCREENINFO, &var)根据request命原创 2020-07-09 16:50:06 · 779 阅读 · 0 评论 -
Linux环境应用编程(二):内存分配
一:概述 许多系统程序需要为动态数据结构(链表和二叉树)分配额外内存,此类数据结构的大小由运行时获取的信息决定。 进程可以通过增加堆的大小来分配内存,所谓堆是一段长度可变的连续虚拟内存,始于进程的未初始化数据段末尾,随着内存的分配和释放而增减,通常将堆的当前内存边界称为“program break”。二:在堆上分配内存1、调整program break#include <unistd.h>int brk(void *addr);voi...原创 2020-11-05 16:07:46 · 214 阅读 · 0 评论 -
Linux环境应用编程(一):通用I/O模型
一:概述 所有执行I/O操作的系统调用都以文件描述符,一个非负整数来指代打开的文件。文件描述符用以表示所有类型的已打开文件,包括管道,FIFO,socket,终端,设备和普通文件。大多数程序都期望能够使用如下3种标准的文件描述符,在程序中指代这些文件描述符时,可以使用数字(0,1,2)表示。 二:系统调用1、打开一个文件:open当open创建新文件时,mode指定文件的访问权限。如果open并未指定O_CREAT标志,则可以省略mode参数。...原创 2020-11-03 15:45:32 · 238 阅读 · 2 评论 -
Linux环境应用编程(五):网络编程
一:引言 Linux系统提供的经典进程间通讯机制(IPC):管道,共享内存,消息队列以及信号量,这些机制允许在同一台计算机上运行的进程可以互相通信,而对于不同计算机(通过网络相连)上的进程间通讯则引入了新的机制:网络进程间通信,进程可以通过套接字网络进程间通信接口互相通信,对于套接字接口可以采用许多不同的网络协议进行通信。1、五层网络协议栈:应用层协议:FTP、HTTP、SMTP传输层协议:TCP协议、UDP协议网络层协议:IP协议本章讲述的TCP协议和UDP协议就属...原创 2020-07-22 19:44:22 · 415 阅读 · 0 评论 -
远程视频监控:流媒体之FFmpeg+RTMP+Nginx+VLC
一:概述在本项目开篇中已经提及了远程视频监控的两种的方案,而在上一篇也已经介绍了MJPG-Streamer方案,https://blog.csdn.net/qq_34968572/article/details/113031348本文将继续介绍另一种方案也是现在被应用最广泛的方案:流媒体。回忆一下开篇中对流媒体框架的介绍:两端加一服(推流端,拉流端和流媒体服务器),以及推流协议和拉流协议。https://blog.csdn.net/qq_34968572/article/details/原创 2021-01-28 14:52:59 · 1527 阅读 · 0 评论 -
远程视频监控:MJPG-Streamer
一:概述1、MJPG-Streamer介绍(1)Mjpg‐streamer是一个开源软件,用于从摄像头采集图像,它将JPEG帧从一个或多个输入插件复制到多个输出插件。它可用于通过基于IP的网络将JPEG文件从网络摄像头流式传输到各种类型的查看器,如Chrome,Firefox,Cambozola,VLC,mplayer和其他能够接收MJPG流的软件。(2)它最初是为嵌入式设备编写的,在RAM和CPU方面资源非常有限。其前身“uvc_streamer”的创建是因为Linux-UVC兼容相机直接生成原创 2021-01-23 15:18:17 · 4775 阅读 · 1 评论 -
远程视频监控:框架概述
一:概述视频监控目前在各行各业普遍存在,可以极大的满足了人们的各种需求。家具:家庭安防、照顾老人小孩、照顾宠物 公司:仓库防火防盗、疫情防控(摄像头配合温度检测,自动检测体温) 农业:大棚检测、研究记录 娱乐:极限运动记录、风景拍摄 社会:交通检测、安保二:方案目前有两种方案可以提供MJPG-streamer、流媒体方案,本小节只做方案描述,详细实现后续文章会进行介绍。1、MJPG-streamer我们可以使用现成的程序:mjpg-streamer,它运行在ARM板上,原创 2021-01-22 18:59:11 · 721 阅读 · 0 评论 -
Hisi3516二维码识别:应用开发
在上一篇进行了opencv和zbar库的交叉编译。Hisi3516二维码识别:交叉编译zbar+opencv_猩猩の點燈的博客-CSDN博客_zbar交叉编译本节是针对上一节编译后的库进行的应用层程序开发,其中就需要用到上一节编译后的库文件。原创 2021-01-22 13:31:06 · 418 阅读 · 0 评论 -
Hisi3516二维码识别:交叉编译zbar+opencv
一:简介本次二维码识别是基于zbar+opencv实现,开发平台为ubuntu18.04,文件执行平台为Hisi3516。因为最终编译的文件是在ARM架构下执行,所以相关库文件和执行程序都需要交叉编译二:Hisi3516开发环境搭建tar -xzvf arm-himix100-linux.tgzcd arm-himix100-linuxchmod +x ./arm-himix100-linux.install./arm-himix100-linux.install执行完上述命令会原创 2021-01-22 11:35:32 · 1175 阅读 · 0 评论