嘉木有鱼
码龄11年
求更新 关注
提问 私信
  • 博客:38,221
    38,221
    总访问量
  • 15
    原创
  • 24
    粉丝
  • 11
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
加入CSDN时间: 2016-04-10
博客简介:

huahuang1508的博客

查看详细资料
个人成就
  • 获得9次点赞
  • 内容获得16次评论
  • 获得89次收藏
  • 博客总排名1,456,344名
创作历程
  • 1篇
    2021年
  • 13篇
    2020年
  • 1篇
    2018年
成就勋章
TA的专栏
  • linux
    1篇
  • c++
    2篇
  • 网络
    1篇
  • 路由
    1篇
  • qt
    1篇
  • 设计模式
    1篇
  • 瑞星微
    8篇
  • 海思
    1篇
  • openwrt
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

1024 程序员节 · 高效创作之道活动征文

1024 程序员节来啦!今年我们邀请你用创作记录高效之道——**写一篇博文,分享你的创作经验、效率技巧或技术干货**,就有机会获得专属好礼。 **特别玩法**: - 🏆 一二三等奖不限方向,自由创作与墨衍相关创作均可参评——自由创作方向获奖者拿**卫衣/马克杯/流量券** - ✨ 如果你在创作中体验了**墨衍**(AI 创作、多平台同步、GEO 检测)并写下真实体验,你的投稿将进入**「墨衍专属创作奖」独立评审赛道**——按墨衍结合深度等专属标准**优中选优**,再拿 7 天体验卡! - 🎁 一二三等奖中的墨衍方向获奖者,同步获得墨衍 7 天体验卡! 创作方向 ### 🚀 墨衍相关创作(推荐 · 专属奖独立评审赛道) - **墨衍使用体验**:AI 创作 / 多平台同步 / GEO 检测的真实体验复盘 - **墨衍场景教程**:选题 → AI 写文 → 多平台同步 → GEO 优化一站式实操 - **墨衍 × 多平台分发**:一次创作多平台发布的效率对比与数据复盘 - **墨衍 × 1024 案例**:用墨衍辅助完成一篇 1024 主题文章的完整过程 > 投稿即进入「墨衍专属创作奖」独立评审赛道(10 名 · 7 天体验卡),不与一二三等奖合并评选,优中选优! ### ✍️ 自由创作(不限题材) 技术干货、职业成长、行业观察、程序人生……符合社区规范即可。

1472人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

linux readdir,d_name实现问题

问题描述在操作readdir或者scandir 返回的struct dirent中d_name会导致错误,后续的文件名输出会变得很奇怪,不能输出完整的文件名,或者其他错误。错误代码示例如下#define _DEFAULT_SOURCE#include <dirent.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>intmain(void){ printf("size:%
原创
博文更新于 2021.12.27 ·
2176 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

CPP中处理一些C的覆盖了CPP关键词的方法

问题在一次开发过程中,涉及到CPP/C的混编,C部分是已经写好的,且由于各种原因无法去修改它,所以当出现了问题的时候,无法从修改源来解决,代码如下static inline void list_add(struct list_head *new, struct list_head *head){ __list_add(new, head, head->next);}这部分代码在C中正常编译,正常使用,这是一个双向链表的节点添加,就是内核里面那套。但是当这部分需要包含到cp
原创
博文更新于 2020.11.25 ·
328 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

基于dns的网络分流处理-策略路由

1.DNS分流这里首先基于dnsmasq来做,在配置文件中做如下修改ipset=/zoogvpn.com/vpnipset=/zootool.com/vpn ipset=/zoozle.net/vpnipset=/writer.zoho.com/vpn大概意思是这几个域名及其子域名,在获取到ip之后加入到vpn这个ipset里面去,这里的dnsmasq需要是full 版本,也就是需要支持ipset这种操作2.ipsetipset是一条命令,用来创建一个ip的集合ipse
原创
博文更新于 2020.09.29 ·
4330 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

QMap QList的安全删除操作

1.QMap有时候回遇见在循环中需要删除某个map元素的操作,如果直接remove其实会影响内部迭代器,这样操作会有问题。删除方式换为erase并更新迭代器即可for (auto it = map.begin(); it != map.end();) if (it.value() % 2 == 1) it = map.erase(it); else ++it;这里之所以安全的原因是erase已经是下一个成员了,根据文档说明,erase会返回下一个
原创
博文更新于 2020.09.23 ·
3955 阅读 ·
2 点赞 ·
2 评论 ·
4 收藏

head first设计模式-工厂模式

1.简述这里描述的设计模式,来源于head first系列,这里的工厂模式是基于书中披萨店的例子。2.简单工厂简单工厂的设计就是说把所有需要创建的东西放在一个普通的函数中,以书中披萨的例子来讲,假设有一百种披萨,就再函数中全部处理完。当然简单工厂内部的实现也可以有技巧,常见的就是if或者switch逐个处理,但是如果太多了,这里就麻烦了。科技设计map,把函数和对应的key存储下来。直接判断的方式,基本只适用于分支比较少的情况。Pizza* create_pizza(string typ
原创
博文更新于 2020.08.27 ·
227 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

firefly-rk3399 开发记录8-NCNN检测

1.NCNN编译NCNN就不描述了,这里采用NCNN最新的发布版ncnn-20200727,buildroot中的mk文件如下NCNN_VERSION = 20200727NCNN_SITE = $(call github,Tencent,ncnn,$(NCNN_VERSION))NCNN_INSTALL_STAGING = YESNCNN_LICENSE = BSD-2-Clause or GPL-2.0+NCNN_LICENSE_FILES = LICENSENCNN_CONF_O
原创
博文更新于 2020.08.12 ·
1313 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

firefly-rk3399 开发记录7-RGA使用

1.RGA简单的说,RGA就是一个用来处理图片的硬件,和CPU相互独立,可以独立完成图片的处理,在瑞芯微这边提供的库是阻塞的,可以自己实现为异步的。具体可参考官方的简单说明http://t.rock-chips.com/forum.php?mod=viewthread&tid=333&highlight=RGA2.RGA错误使用这里使用RGA,主要是用于一个快速的格式转换,在这部分实现中,阻塞或者异步都影响不大。上一章节简单说明了一下RGA的使用,经过测试那样做,有点问题,资源泄
原创
博文更新于 2020.08.11 ·
6154 阅读 ·
1 点赞 ·
2 评论 ·
21 收藏

firefly-rk3399 开发记录6-摄像头处理错误

1.记录一个错误在当前的使用方式下,在运行一段时间,几分钟,或者十几分钟之后出现如下错误,然后摄像头卡死了,整体程序就算是假死状态CameraBinerror:"Internaldatastreamerror."这个问题,没得什么头绪,度娘和谷歌都没看到有什么问题。这个问题在之前没有引入人脸检测时,是没有问题的,直到引入opencv做检测才出现。所以这里首先还是从检测部分还是入手检查,屏蔽cascade.detectMultiScale之后,程序又可正常运行,但是这里cv一般是没得什...
原创
博文更新于 2020.08.11 ·
3045 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

firefly-rk3399 开发记录5-人脸检测实现

1.人脸检测在前面实现的基础上,这里实现人脸检测就相对方便得多了,实现方式简单的采用opencv的分类级联处理haarcascade_frontalface_default.xml。在检测之后,返回人脸检测框,送到上一章节实现的自定义viewfinder中绘制。首先先加载级联器QSmartMethod::QSmartMethod(QObject *parent) : QObject(parent){ cascade.load( "/usr/share/OpenCV/haarc
原创
博文更新于 2020.08.10 ·
976 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

firefly-rk3399 开发记录4-自定义QCameraViewfinder

1.QCameraViewfinderQCamera的取景器,用于显示摄像头抓到的数据,前面所使用的就是这个。但是现在遇到一个需求,比如在一些场合中,需要在显示图像上打水印,OSD等信息,比如在人脸检测场景中一帮会要求识别画框,这里这里没有提供hook方式,不行,probe是并行的,并不会影响到显示这里。看有些博客上说继承一下QCameraViewfinder然后覆写painteventvoid QCameraViewfinderPri::paintEvent(QPaintEvent *e){
原创
博文更新于 2020.08.07 ·
1652 阅读 ·
0 点赞 ·
0 评论 ·
12 收藏

firefly-rk3399 开发记录3-编码与RTSP实现

1.帧捕获在前面的实现过程中,采用了QVideoProbe捕获摄像头数据,在信号绑定之后,传输到QSmartVenc,编码模块是额外放在另外一个线程处理的 QVencParm param; param.width = 1280; param.height = 720; param.code = MPP_VIDEO_CodingAVC; param.fmt = MPP_FMT_YUV420P; m_venc.reset(new QSmartV
原创
博文更新于 2020.08.07 ·
4265 阅读 ·
3 点赞 ·
5 评论 ·
17 收藏

firefly-rk3399 开发记录2-摄像头控制

1.基本使用买了firefly那个屏幕,接入HDMI和USB线之后,屏幕会有显示,用的是weston,也带正常触屏功能。尝试挂载NFS,结果发现失败, bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program看了下NFS的支持,内核是支持了,busybox没支持,重新编译一下buildroot,make busybox-menucon
原创
博文更新于 2020.08.07 ·
1972 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

firefly-rk3399 开发记录1-环境搭建

1.固件目前先选择builroot编译,在官方下载最新的固件,这里使用的是firefly-sdk-20200629.7z,校验MD5通过后,则进行解压http://wiki.t-firefly.com/zh_CN/Firefly-RK3399/buildroot_compile.html,基本编译步骤和教程一样。这里选择的是docker部署,docker的方式懂的人自认就懂a).docker pull ubuntu:16.04b).创建容器,并映射目录,把固件源码目录映射到容器中c.
原创
博文更新于 2020.08.07 ·
1574 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

关于hi3516DV300的VDEC一些测试

VDEC是用于解码视频或者文件用于显示或其他途径的部件,常用操作是解码之后送入VPSS到VO,VDEC->VPSS->VO。支持的格式H264、h265、jpeg。VDEC的整体设置比较简单,基本使用历程相关即可,解码方式支持三种,流式,即读取多少就送入多少解析,但是这样由于不是完整的帧(GOP),VDEC不会立即有效果,只有等一个完整的GOP输入之后才会有输出,这是最简单的一种,按帧发送,即每次发送的都是完整的GOP,VDEC会立刻进行解析并输出,兼容模式就像流式发送,但是需要用户自己判断
原创
博文更新于 2020.07.14 ·
3667 阅读 ·
1 点赞 ·
3 评论 ·
11 收藏

openwrt 1806移植mt7628

最小固件:3604643openwrt-ramips-mt76x8-mt7628-squashfs-sysupgrade.bin带LUCI:./scripts/feeds update -a./scripts/feeds install -amake defconfigmake checkmake downloadmake menuconfigmake V=s1.修改固件大...
原创
博文更新于 2018.10.15 ·
2587 阅读 ·
0 点赞 ·
1 评论 ·
6 收藏
加载更多