嵌入式
白菜不讲价
不思则惘!
展开
-
VS Code配置C/C++编译环境
https://wtx.moe/archives/103/转载 2020-03-12 22:44:21 · 200 阅读 · 0 评论 -
CLion打开外部项目,无法编译问题
问题:拷贝外部项目工程打开,编译项呈灰色解决办法:清楚项目缓存,如下图原创 2020-02-04 16:10:17 · 3633 阅读 · 0 评论 -
u-boot移植
编译环境:RHEL 6.9目标板:友善之臂 mini2440 (ARM9)交叉编译器:arm-linux-gcc 4.3.2源码:uboot_mini2440.tar.gz 移植步骤: 1)解压源码: tar xvzf uboot_mini2440.tar.gz cd uboot...原创 2018-08-09 10:59:06 · 152 阅读 · 0 评论 -
Linux Kernel编译
编译环境:RHEL 6.9目标板:友善之臂 mini2440 (ARM9)交叉编译器:arm-linux-gcc 4.3.2源码:linux-2.6.32.2.tar.gz(内核下载地址:内核下载地址) 编译步骤: 1)解压源码: tar xvzf linux-2.6.32.2.tar.gz cd linux...原创 2018-08-09 11:21:18 · 2594 阅读 · 0 评论 -
NFS文件系统制作
开发环境: 目标平台:迅为itop4412 内核版本:linux-3.0.15 主机:Ubuntu 12.04 LTS 交叉编译器:arm-2009q3(迅为提供,arm-linux-gcc 4.4.1) 操作步骤: (前提:宿主机上配置好NFS,确保nfs已经可用) 1)创建文件系统主目录: mkdir rootf...原创 2018-08-18 11:48:55 · 299 阅读 · 0 评论 -
RT3070 USB无线网卡移植到ARM开发板
前言:要在嵌入式平linux平台上使用wifi模块,需要做下面几方面的事情:Ø 根据不同Wifi模块要求配置相应的内核项Ø Wifi模块驱动的修改与编译Ø Wifi使用相关工具的移植Ø Wifi模块测试流程: 1> 网卡驱动移植(rt3070sta.ko) 2> wifi配置工具移植(libnl库 、openssl库、wp...原创 2018-08-24 15:35:35 · 1063 阅读 · 2 评论 -
rtl8811cu双频网卡移植到ARM
一、配置内核支持无线网卡功能二、需要移植生成的东西: 1> 驱动:rtl8821cu.ko 2> wifi配置工具:wpa_supplicant(依赖库openssl及libnl库) (重点关注:wpa_supplicant不同版本依赖不同版本的openssl库,需查看wpa_supplicant里面的README文档得知)...原创 2018-09-20 12:06:19 · 5284 阅读 · 0 评论 -
Opencv3.1.0 + VS2015图像处理开发环境搭建 (Windows10 x64平台)
环境的搭建主要需要完成两项工作: 一、vs2105的安装 二、Opencv3.1.0安装 安装过程: 1.安装vs2015 安装过程很简单,同以往安装类似,只不过需要注意,由于此次开发我是用c++来开发的,所以务必在安装时将C++勾选上。 2.安装opencv3.1.0 ...原创 2018-09-26 09:51:39 · 783 阅读 · 0 评论 -
Opencv基础图像处理实验
Opencv中文文档教程https://www.w3cschool.cn/opencv/opencv-1x4i2cof.html实现功能: 图像加载、颜色空间转换、掩膜操作(对比度增强)、像素点值修改。实验代码:#include <opencv2/opencv.hpp>#include <iostream>using namespace...原创 2018-09-26 11:27:42 · 1021 阅读 · 0 评论 -
Opencv图像混合
功能:实现两张图像混合条件:两张图像大小、类型需一致*********图像线性混合的数学原理************* G(x)=(1-a)F(x)+aQ(x)注意事项:1,a的取值范围为0到1之间2,F(x)和Q(x)为参与混合的两幅图像,G(x)表示输出图像3,通过对两幅图像的每个像素值做线性加权得到最终的输出图像4,两幅图像的大小和...原创 2018-09-26 14:49:10 · 160 阅读 · 0 评论 -
Opencv---图像对比度和亮度调节
调整图像亮度和对比度操作属于像素变换---点操作数学原理: g(x,y) = af(x,y)+b; a>0,b为增益变量 代码实现:#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(int argc, char** argv...原创 2018-09-26 15:53:41 · 803 阅读 · 0 评论 -
Opencv----图像模糊
实现功能:图像模糊、滤波代码实现:/****************************功能:图像模糊、滤波****************************/#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(int argc, cha...原创 2018-09-26 17:26:24 · 288 阅读 · 0 评论 -
Opencv---膨胀与腐蚀
应用两个非常常见的形态运算符:侵蚀和扩张。为此,您将使用以下OpenCV功能: cv::erode cv::dilate 形态作业 简而言之:一组基于形状处理图像的操作。形态操作将结构元素应用于输入图像并生成输出图像。 最基本的形态作用是:侵蚀和扩张。它们有广泛的用途,即: 消除噪音 隔离单个元素并连接图像中的不同元素。 查找图像中的强度凸点或孔 我们将简要解释...原创 2018-09-27 09:33:01 · 1388 阅读 · 0 评论 -
Opencv---形态学操作
目标在本教程中,您将学习如何:使用OpenCV函数cv :: morphologyEx应用形态转换,如:开盘 闭幕 形态梯度 顶帽 黑帽理论注意下面的解释属于Bradski和Kaehler 的“ 学习OpenCV ”一书。在前面的教程中,我们介绍了两种基本的形态学操作:侵蚀 扩张。基于这两个,我们可以对我们的图像进行更复杂的转换。在这里,我们简要讨论Open...转载 2018-09-27 11:20:38 · 174 阅读 · 0 评论 -
Opencv---通过形态学操作提取水平和垂直线
OpenCV通过使用形态学操作来提取水平和垂直线目标在本教程中,您将学习如何:应用两个非常常见的形态运算符(即扩张和侵蚀),创建自定义内核,以便在水平轴和垂直轴上提取直线。为此,您将使用以下OpenCV功能:CV ::侵蚀CV ::扩张CV :: getStructuringElement在一个例子中,您的目标是从音乐表中提取音乐笔记。理论形态操作形态学是一组图像处理操作,其...转载 2018-09-27 11:59:42 · 846 阅读 · 0 评论 -
Opencv--图像金字塔
目标使用OpenCV函数cv :: pyrUp和cv :: pyrDown对给定图像进行下采样或上采样。理论注意下面的解释属于Bradski和Kaehler 的“ 学习OpenCV ”一书。通常我们需要将图像转换成与原始图像不同的大小。为此,有两个可能的选择:升高图像(放大)或缩小(缩小)。 虽然有一个几何变换中的OpenCV函数-literally-调整图像大小(CV ::调...原创 2018-09-27 17:35:05 · 200 阅读 · 0 评论 -
基于V4L2的简单视频采集
编译环境:ubuntu12.04编译器:arm-linux-gcc 4.4.1目标板:迅为iTOP4412 (cortex A9) 程序实现功能:捕获一帧图像。代码:#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <sys/stat.h>...原创 2018-09-22 16:39:38 · 457 阅读 · 0 评论 -
Opencv--阈值操作
OpenCV基本阈值操作目标在本教程中,您将学习如何:使用OpenCV函数cv :: threshold执行基本阈值操作Cool Theory注意下面的解释属于Bradski和Kaehler 的“ 学习OpenCV ”一书。什么是阈值?最简单的分割方法 应用示例:分离对应于我们想要分析的对象的图像的区域。该分离基于对象像素和背景像素之间的强度变化。 为了区分我们感...转载 2018-09-27 20:42:59 · 210 阅读 · 0 评论 -
V4L2图像采集+图片格式转换(YUYV、RGB、JPEG)
本篇转自博友https://blog.csdn.net/xuyangwyw/article/details/40476653文章,感谢分享。废话不多说,直接开始流程。1、驱动支持 在那位法国牙医的无私奉献下,Linux内核几乎支持所有的USB摄像头,不过要想自己的Linux内核支持USB免驱摄像头,还需要先配置内核,Device Drivers ---> <...转载 2018-10-12 18:13:47 · 17891 阅读 · 5 评论 -
Opencv--自定义线性滤波
OpenCV制作自己的线性滤镜目标在本教程中,您将学习如何:使用OpenCV函数cv :: filter2D创建自己的线性过滤器。理论注意下面的解释属于Bradski和Kaehler 的“ 学习OpenCV ”一书。关联在非常一般的意义上,相关性是图像的每个部分和运算符(内核)之间的操作。什么是内核?内核本质上是固定大小的数字系列数组,以及该阵列中的一个锚点,...转载 2018-09-27 21:22:27 · 750 阅读 · 1 评论 -
Opencv--边缘填充
OpenCV添加边框到您的图像目标使用OpenCV函数cv :: copyMakeBorder设置边框(额外填充到您的图像)。理论在前面,我们学会了使用卷积来对图像进行操作。自然产生的一个问题是如何处理边界。如果评估点位于图像的边缘,我们如何卷积它们? 大多数OpenCV功能是将给定的图像复制到另一个稍大的图像上,然后自动填充边界(通过下面的示例代码中解释的任何方法)。这样,可以在...原创 2018-09-28 10:55:27 · 4133 阅读 · 0 评论 -
Opencv--Sobel算子
Sobel衍生物目标使用OpenCV函数cv :: Sobel来计算图像中的衍生物。 使用OpenCV函数cv :: Scharr计算3 \ cdot 3的内核的更准确的导数3⋅3理论注意下面的解释属于Bradski和Kaehler 的“ 学习OpenCV ”一书。在最后两个教程中,我们已经看到了卷积的应用例子。最重要的卷积之一是计算图像中的导数(或与其近似)。 为什么在...原创 2018-09-28 16:34:02 · 4667 阅读 · 0 评论 -
Opencv--Laplacian算子
Laplace 算子目标使用OpenCV函数cv :: Laplacian来实现Laplace运算符的离散模拟。理论在上一个教程中,我们学习了如何使用Sobel操作符。这是基于以下事实:在边缘区域中,像素强度显示“跳跃”或强度的高变化。得到强度的一阶导数,我们观察到边缘的特征是最大值,如图所示:和...如果我们采取二阶导数会发生什么?您可以观察到二阶导数为零!因此,我们也...原创 2018-09-28 16:57:28 · 1708 阅读 · 0 评论 -
Opencv--Canny边缘检测器
目标使用OpenCV函数cv :: Canny来实现Canny Edge Detector。理论该Canny边缘检测是由约翰·F·坎尼在1986年也知道很多的开发最佳的检测,坎尼算法旨在满足三个主要标准:低错误率:意味着只有现有边缘的良好检测。 良好的定位:检测到的边缘像素与实际边缘像素之间的距离必须最小化。 最小响应:每个边缘只有一个检测器响应。步骤滤除任何噪音。高斯滤波...原创 2018-09-28 20:25:19 · 1944 阅读 · 0 评论 -
Opencv--霍夫变换-直线
Hough Line变换目标使用OpenCV函数cv :: HoughLines和cv :: HoughLinesP来检测图像中的行。理论注意下面的解释属于Bradski和Kaehler 的“ 学习OpenCV ”一书。Hough Line变换Hough Line变换是用于检测直线的变换。 为了应用变换,首先需要边缘检测预处理。它是如何工作的?如你所知,图像空间中...原创 2018-09-29 10:37:02 · 690 阅读 · 0 评论 -
Opencv--霍夫圆变换
Hough Circle 变换目标使用OpenCV函数cv :: HoughCircles来检测图像中的圆。理论Hough Circle变换Hough Circle变换的工作原理与上一个教程中解释的Hough Line变换大致相似。 在行检测案例中,一行由两个参数(r,θ)。在圆圈中,我们需要三个参数来定义一个圆: (xcenter,ycenter)定义中心位置(绿点...原创 2018-09-29 11:46:18 · 638 阅读 · 0 评论 -
搭建Eclipse + GDBserver进行linux-arm远程交叉调试
linux环境:VMware + ubuntu12.04ARM板:iTOP4412 (cortex A9)本篇参考博文https://blog.csdn.net/u010561799/article/details/75093277和https://blog.csdn.net/linuxarmsummary/article/details/44975495搭建流程: ...原创 2018-10-08 17:13:48 · 1282 阅读 · 0 评论 -
Linux V4L2编程
本博文转自http://www.cnblogs.com/sky-heaven/p/6904516.html,多谢分享。USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不需要安装任何的驱动程序下即插即用,包括摄像头、数字摄影机、模拟视频转换器、电视卡及静态视频相机。最新的UVC版本为UVC 1....转载 2018-10-15 16:41:57 · 374 阅读 · 0 评论 -
移植X264编码库到ARM
编译环境:ubuntu12.04交叉编译器:arm-none-linux-gnueabi-gcc 4.4.1目标板:iTOP4412 (cortex A9) 源码准备: X2.64源码:http://www.videolan.org/developers/x264.html编译流程: 1. 进入x264文件夹,进行配置 1 ...原创 2018-10-15 18:57:00 · 2007 阅读 · 0 评论 -
Linux下如何实现秒以下精确定时与休眠
Linux中提供的休眠函数是sleep和alarm,但是他们仅仅提供以秒为单位的休眠,这中休眠有些进程显然太长了,那么怎样才能使进程以更小的时间分辨率休眠呢?下面就做分别介绍。一、间隔定时器1.setitimersettitimer创建一个间隔式定时器,这种定时器会在未来某个时间到期,并于此后(可选择地)每隔一段时间到期一次int setitimer(int which, cons...原创 2018-10-18 19:27:04 · 1561 阅读 · 0 评论 -
Linux系统备份-----Respin、Remastersys和Pinguy
Respin方法(respin为remastersys的替代品,因为remastersys已经不再维护):1.添加下载源:sudo add-apt-repository ppa:sergiomejia666/respinsudo add-apt-repository ppa:sergiomejia666/xresprobe2.更新软件库sudo apt-get update...原创 2018-10-09 11:00:30 · 6628 阅读 · 1 评论 -
libx264编码---YUV图像数据编码为h.264码流
编译环境:ubuntu12.04目标平台:ARM Cortex A9交叉编译器:arm-none-linux-gnueabi-gcc 4.4.1基本步骤: 一、移植x264库到ARM板,请看上一篇博文移植x264编码库二、测试: 调用x264库将YUV码流文件编码压缩成H.264视频文件,代码如下(该代码来自雷神博文最简单的视频编码器:基于libx264(...原创 2018-10-16 10:52:26 · 5241 阅读 · 0 评论 -
视音频数据处理入门:RGB、YUV像素数据处理---雷霄骅
视音频数据处理入门:RGB、YUV像素数据处理转载 2018-10-16 16:37:56 · 500 阅读 · 0 评论 -
Linux多线程编程---线程间同步(互斥锁、条件变量、信号量和读写锁)
本篇博文转自http://zhangxiaoya.github.io/2015/05/15/multi-thread-of-c-program-language-on-linux/Linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量、信号量和读写锁。 下面是思维导图:简介进程— 资源分配的最小单位线程— 程序执行的最小单位进程是一个程序的一个实例,拥有自...转载 2018-10-10 09:37:31 · 27713 阅读 · 11 评论 -
视频传输---传输协议的选择
为了保证数字视频网络传输的实时性和图像的质量,传输层协议的选择是整个设计和实现的关键。Internet在IP层上使用两种传输协议:一种是TCP(传输控制协议),它是面向连接的网络协议;另一种是UDP(用户数据报协议),它是无连接的网络协议。TCP传输:TCP(传输控制协议)是一种面向连接的网络传输协议。支持多数据流操作,提供流控和错误控制,乃至对乱序到达报文的重新排序,因此,...原创 2018-10-19 15:08:31 · 6540 阅读 · 0 评论 -
Linux C---文件操作(fopen、fwrite、fread等)的权限问题
C语言中对文件进行操作必须打开文件,打开文件主要涉及到fopen函数。fopen函数的原型为:FILE* fopen(const char *path,const char *mode)其中path为文件路径,mode为打开方式1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下。若需给出绝对路径,则注意转义字符'\',比如有文件test.txt存放在C盘根目录...原创 2018-10-22 14:57:02 · 5704 阅读 · 0 评论 -
yuyv(yuv422)转yuv420p格式
YUV422图像是这样的,每个像素采集Y,每隔两个像素采集一次UV:Packed格式的YUV420是这样的,每个像素采集Y,UV隔行采集,每行是每两个像素采集一次:代码如下:unsigned char *yuyv_buf = (unsigned char *)malloc(2*1280*720*sizeof(unsigned char));unsigned cha...原创 2018-10-22 15:55:06 · 3790 阅读 · 0 评论 -
ffmpeg移植
编译环境:ubuntu12.04交叉编译器:arm-none-linux-gnueabi-gcc 4.4.1目标板:iTOP4412 (cortex A9)ffmpeg库的移植主要包括: 1.yasm移植(可选,yasm是汇编编译器,ffmpeg加入它是为了提高编译速度,可在x264配置时使用--disable-asm选择不使用) 2.x264移植 ...原创 2018-10-17 19:51:09 · 2543 阅读 · 0 评论 -
Linux IO模式及select、poll、epoll详解
注:本文来自博友文章,出处https://segmentfault.com/a/1190000003063859。总结不错,略作收藏,感谢分享。同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说...转载 2018-10-25 09:49:54 · 235 阅读 · 0 评论 -
ARM板更改系统时期和时间
在ARM-linux系统中,默认使用的UTC时间,所以使用date命令显示时间时,显示的时间比电脑上的显示的时间小8个小时,同时localtime和gmtime获取的时间一样都是UTC时间,比真正的本地时间小8小时;所以需要将默认的UTC时间改为CTS时间,其实很简单。1.将ubuntu虚拟机中/usr/share/zoneinfo/Asia/shanghai复制到arm板子linux系统/...原创 2018-10-31 10:10:16 · 5596 阅读 · 0 评论