c++
文章平均质量分 71
RichardorMu
四处搬砖,HCI,gaze estimation,music,jetson
展开
-
Windows下CMake安装教程
Windows下CMake安装教程环境:Windows 64位首先下载CMake官网下载地址:https://cmake.org/download/里面好多版本,根据自己需要版本进行下载。【注意】选择好自己电脑是什么系统,以及是32位还是64位。(P.S.x86指的是32位系统;x64指的是64位系统)下载完成后,双击进行安装。1.欢迎界面。点【next】2.同意协议。勾选,然后点【next】3.按图中红框勾选,然后点【next】4.路径选择,然后点【next】。安装路径根据自己原创 2021-12-07 10:06:11 · 4978 阅读 · 0 评论 -
Jetson 系列——基于yolov5对工地头盔的检测,部属于jetson xavier nx,使用tensorrt、c++和int8加速,可用于边缘计算
项目简介:代码地址:github地址:https://github.com/RichardoMrMu/yolov5-helmet-detectiongitee地址:https://gitee.com/mumuU1156/yolov5-helmet-detection欢迎start或提出你的issue、改进建议。原创 2021-11-10 15:15:51 · 5242 阅读 · 20 评论 -
Jetson 系列——OpenCV获取网络摄像头实时视频流和解决一些问题([h264 @ 0xxxxx] missing picture in access unit)
1 RTSP协议RTSP (Real Time Streaming Protocol),是一种语法和操作类似 HTTP 协议,专门用于音频和视频的应用层协议。 和 HTTP 类似,RTSP 也使用 URL 地址。同时我们也要了解到摄像机传输数据用的是码流,高清网络摄像机产品编码器都会产生两个编码格式,称为主码流和子码流。这就叫双码流技术。目的是用于解决监控录像的本地存储和网络传输的图像的质量问题。双码流能实现本地和远程传输的两种不同的带宽码流需求,本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因原创 2021-11-07 11:07:54 · 2545 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(九)ffmpeg解码mp3后用alsa播放
1. 己经学会了用alsa播放pcm并且ffmpeg可以解码mp3为pcm,那么把这两者合并起来就是ffmpeg解码mp3后用alsa播放2. 代码#include "utils.h"#include <libavutil/avutil.h>#include <libavutil/attributes.h>#include <libavutil/opt.h>#include <libavutil/mathematics.h>#include &原创 2021-11-07 10:32:21 · 852 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(八)用ffmpeg将mp3转为wav
1. 利用fffmpeg将mp3转为pcm并在pcm数据加上wav头就是一个完整的wav文件2. 代码#include "utils.h"#include <libavutil/avutil.h>#include <libavutil/attributes.h>#include <libavutil/opt.h>#include <libavutil/mathematics.h>#include <libavutil/imgutils.h&原创 2021-11-07 10:30:09 · 475 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(七)用alsa播放wav文件
1.用alsa播放wav文件的过程a. 打开snd_pcm_openb. 为param分配空间,并初始化参数b.1 这儿为了确认参数需要读取wav文件的头,并根据wav文件来确认参数需要确认的参数有三个: format(即SND_PCM_FORMAT_S16_LE类似) channels ratec. snd_pcm_hw_params将参数设到driver中去d. 循环读取wav文件中的数据,并把数据snd_pcm_writei写到驱动中进行播放2.代码#include "utils.h原创 2021-11-07 10:27:34 · 679 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(六)alsa的demo
Introduction to Sound Programming with ALSA1. 打印alsa中的类型及格式Listing 1. Display Some PCM Types and Formats#include "utils.h"#include <alsa/asoundlib.h>#include <stdlib.h>int main ( int argc, char *argv[] ){ int i; printf("<----原创 2021-11-07 10:24:21 · 301 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(五)alsa使用和wav格式分析
1.wave文件的四个部分1.0 四个部分RIFF HeaderID = ‘RIFF’RIFF_TYPE=‘WAVE’Format ChunkID = 'fmt ’Fact Chunk 可选ID = ‘fact’Data ChunkID =‘data’1.1 RIFF_WAVE_Chunk名称长度内容ID4 Bytes‘RIFF’Size4 Bytes整个文件大小-8Type4 Bytes‘WAVE’原创 2021-11-07 10:21:27 · 393 阅读 · 0 评论 -
使用Clion远程自动同步和远程调试c++
摘要:在linux上用vim写C++的时候,通常用gdb进行调试,不能随心所欲的看代码和跳转代码以及加watch(也有可能是因为我还没有get正确的使用方法)。为此我发现Clion可以做到自动同步本场代码或自己下载远程代码同步到本地,以及调试在远程机器上运行的代码,为此记录下来。简介CLion 是一款专为开发 C 及 C++ 所设计的跨平台 IDE。 它是以 IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力,从而提升工作效率 。环境准备操作系统: macOS / Wind原创 2021-10-24 18:19:03 · 9627 阅读 · 0 评论 -
Jetson 系列——基于deepsort的物体跟踪使用tensorrt和c++加速
项目简介:代码地址:github地址:https://github.com/RichardoMrMu/deepsort-tensorrttgitee地址:https://gitee.com/mumuU1156/deepsort-tensorrt欢迎start或提出你的issue、改进建议。本项目使用deepsort+cpp+tensorrt实现tracking,使用c++实现,并用tensorrt加速。效果可以参考我的yolov5-deepsort-tensorrt文章,yolov5-dee原创 2021-09-12 19:42:00 · 2317 阅读 · 1 评论 -
Jetson 系列——jetson xavier nx三率代码编译链接流程
c++代码所需要的基础cudacudnnlibtorchc++代码所需要的额外库,比如json,curl等第一步:cuda和cudnn,jetson Xavier自带cuda和cudnn,查看其版本号查看cuda版本nvcc -V如果此时出现nvcc : command not found请在terminal中输入如下命令export LD_LIBRARY_PATH=/usr/local/cuda/libexport PATH=$PATH:/usr/local/cuda/bi原创 2021-08-27 22:57:20 · 877 阅读 · 0 评论 -
linux或者windows获取唯一硬件信息-命令行和c++代码
linux使用dmidecodeCPU ID// 代码:sudo dmidecode -t 4 | grep ID// 主板序列号代码:sudo dmidecode -t 2 | grep Serial// MAC地址代码:sudo lshw -c network | grep serial | head -n 1这个需要使用root权限,同时对于jetson 板子,dmidecode没用14、获取CPU序列号或者主板序列号sudodmidecode –t 4 | grep I原创 2021-07-11 10:13:45 · 3844 阅读 · 3 评论 -
linux下gcc/g++编译器使用简介及makefile的书写规则
介绍:GNU CC(简称gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++、Object C、Jave等多种语言编写的程序。gcc又可以作为交叉编译工具,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,非常适合在嵌入式领域的开发编译,如常用的arm-linux-gcc交叉编译工具通常后跟一些选项和文件名来使用 GCC 编译器。gcc 命令的基本用法如下:gcc [options] [filenames]选项指定编译器怎样进行编译。一、gcc 编译流程1.预处原创 2021-07-10 21:54:11 · 376 阅读 · 0 评论 -
c++string字符串切割的方法
字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可以使用stl提供的封装进行实现或者通过c函数strtok()函数实现。1.通过stl实现涉及到string类的两个函数find和substr:1、find函数原型:size_t find ( const string& str, size_t pos = 0 ) const;功能:查找子字符串第一次出现的位置。参数说明:str为子字符串,pos为初始查找位置。返回值:找到的话返回第一次出现的位置,否则返回strin原创 2021-07-10 10:12:53 · 3814 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(四)alsa+lame将音频流转为MP3
1.linux下使用alsa录音成pcm文件再使用lame转码为MP3#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <alsa/asoundlib.h>#include <signal.h>#include <lame/lame.h>/*PCM文件转码成mp3文件*/void ConvertPCM2MP3WithPath(const c原创 2021-07-01 20:52:30 · 728 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(三)alsa音频编程教程
1. ALSA音频编程介绍 ALSA 代表高级 Linux 声音架构。它由一组内核驱动程序、一个应用程序编程接口 (API) 库和用于在 Linux 下支持声音的实用程序组成。在本文中,我简要概述了 ALSA 项目及其软件组件。重点是对 ALSA 的 PCM 接口进行编程,包括您可以进行试验的编程示例。 您可能只想探索 ALSA,因为它是新的,但它并不是唯一可用的声音 API。如果您正在执行低级音频功能以获得最大控制和性能,或者想要利用其他声音 API 不支持的特殊功能,则 ALSA 是一个不错的选原创 2021-07-01 20:23:55 · 1768 阅读 · 2 评论 -
linux下lame&alsa进行音频流操作(二)alsa知识介绍和libasound使用
说明 在Linux平台, 设计到音频的开发,必然离不开liasound,无论是混音器的参数设置,还是录音、播放音频等,liasound都提供了支持。这篇文章介绍的时播放音频部分,即 PCM 部分1. 预备知识1.1 音频相关知识采样率(每秒采样次数)\帧率, 表示每一秒对声音的波形模拟量取样的次数,频率越高,音质越好字节率(每秒采样字节数),与采样率、通道数和单位采样字节数综合相关, 实际上等于这三个数据的乘积除以8 (8位代表1字节)通道数(1: 单通道, 2: 立体声),就是我们平常听音原创 2021-07-01 11:41:30 · 579 阅读 · 0 评论 -
linux下lame&alsa进行音频流操作(一)lame知识介绍
1.LAME介绍 lame是一个有名的开源mp3编码库,这篇文章将会介绍如何调用lame库的接口编码出mp3。2.lame库编译 对于lame库,你有两个安装的方法,第一是使用apt-get安装,使用下面的命令。sudo apt-get install libmp3lame-dev 这样安装的lame库可能并不是最新版本的。如果你想安装最新版本的lame库,可以选择在官网下载。官网下载:https://sourceforge.net/projects/lame/files/lame/原创 2021-07-01 11:17:09 · 2144 阅读 · 2 评论 -
c++分文件编写,包括头文件和cpp源文件
**作用:**让代码结构更加清晰函数分文件编写一般有4个步骤1.创建后缀名为.h的头文件2.创建后缀名为.cpp的源文件3.在头文件中写函数的声明4.在源文件中写函数的定义示例:在头文件中写函数的声明//swap.h文件#include<iostream>using namespace std;//实现两个数字交换的函数声明void swap(int a, int b);在源文件中写函数的定义//swap.cpp文件#include "swap.h"void原创 2020-09-27 15:01:51 · 1696 阅读 · 0 评论