- 博客(51)
- 收藏
- 关注
原创 bitbucket 无法clone https协议的link
https://bitbucket.org/blog/deprecating-atlassian-account-password-for-bitbucket-api-and-git-activityTo create an app password:More details on app passwords (including usage and revocation) can be found in Bitbucket documentation.
2024-06-20 13:49:00
236
原创 opencv奇怪错误原因记录
原因: include 的opencv2所属版本和 libopencv*所属版本不一致。原因:没有链接 到opencv_core 或者正确的opencv_core;cv::rectangle,putext 等不起作用。
2024-05-16 14:26:40
72
原创 C++下跨平台websocket库及使用示例
使用方法是,先下载源码包并复制道工程的include目录下。然后在代码#include "utility_client.hpp"即可调用其接口进行websocket通信。websocketpp库使用非常方便,开源,可跨平台,内部实现全部是head文件,无cpp,接口简单易用。json的解析使用jsoncpp库,可自行安装。
2024-04-27 09:40:01
810
1
原创 C++设计模式探讨(2)-单例模式
通过单例模式的设计,使得创建的类在当前进程中只有一个实例,并提供一个全局性的访问点,这样可以规避因频繁创建对象而导致的内存飙升情况。3.程序的大量位置使用静态私有对象,这可能会带来错乱。大量的在不同位置的对该静态对象的修改,访问,涉及逻辑的同步问题。2.如果一个类对象确实需要在后续的行为中分配新的内存,那么也就代表不能使用单例模式。2)类定义中含有该类的唯一静态私有对象:静态变量存放在全局存储区,且是唯一的,供所有对象使用。1)私有化构造函数:这样外界就无法自由地创建类对象,进而阻止了多个实例的产生。
2024-04-20 10:05:47
330
原创 Windows本地搭建开源的stable-diffusion-webui用于AIGC文生图
通过魔搭社区镜像站获取 clip-vit-large-patch14,使用 git 获取,默认你已经部署并配置好 Git 环境,在windows搭建似乎比较方便些,比如CUDA模式下,显卡驱动比较好安装(若使用cuda需要更新显卡驱动在。进入解压后的 stable-diffusion-webui 目录,创建目录 openai。开源的stable-diffusion-webui来自于。时间较长,耐心等待。下载完大约有 12.7GB 左右。进入目录 openai。
2024-04-14 18:45:23
753
原创 C++设计模式探讨(1)-工厂模式
援引其他地方的介绍为:C++工厂模式是一种模式,它是一种创建对象的有效方法。它允许我们使用一个类来负责创建实现特定接口的不同具体类的实例,而无需明确指定该实例的具体类。通过抽象出一个工厂类来负责每个子类的实例化,使得代码的可维护性大大增加。设计模式是世界规律的提取,但无法体现具体的形式。所以,设计模式是一个尴尬的存在,它有一定的价值,但却又十分有限。架构设计者需要做的是,知道有这么个规律,基于此去深思和挖掘内涵,这一切基于设计之道。3.子类实例内的成员可以基于父类拓展,在调用的时候通过子类实例直接调用。
2024-04-14 09:30:22
344
原创 speech to text 库fastASR接口调用示例C++
Cmake的配置很简单,链接fastasr fftw3f openblas webrtcvad几个库即可。但需要注意是需要将源码包的webrtc目录和Model.h拷贝到当前工程目录下,并在cmake添加add_subdirectory("./webrtc")。由于比较简单,上面源码对应的头文件就不贴了,可以自行书写。本方案直接传入PCM 数据buffer,并不从wav文件读入,更符合在线STT方式。前提是已经从fastASR源码编译出来了libfastasr.a库(参照。
2024-04-10 11:05:29
188
原创 linux下根据进程pid获取对应的window id的方法
有时候我们需要在一个图形化进程中抓取另外一个进程的窗口以嵌入到当前进程的界面里。比如,在QT开发中,在当前的进程界面里启动另外一个进程并将其窗口嵌入到当前进程的界面内。下面的代码示例了如何根据进程的id获取其对应的UI窗口ID(基于x11框架)。
2024-04-09 14:26:28
330
原创 speech to text 库FastASR交叉编译arm target的配置
配置好CMAKE后,还需要在buildroot下编译fftw3和openblas, 这个可以使用buildroot的make menuconfig 配置或者直接在buildroot的config下添加并打开对应的package的宏定义。在buildroot下编译出来了fftw和openblas的库之后,便可以在FastASR根目录下mkdir build, 然后cd build去 执行cmake .. 及make。FastASR是一个比较方便的SPEECH TO TEXT的AI库。
2024-04-07 16:50:55
220
原创 cmake Linux报错skipping incompatible的解决
这样导致系统使用了默认的compiler/usr/bin/gcc, 将空格去掉,则可以使用到正确的compiler和linker去编译,错误消失。可以到build目录下模块的目录下查找link.txt文件,里面记录了具体的最终编译链接命令。2.检查cmakelists.txt文件里有没有重新设定 CMAKE_LINKER到交叉编译工具对应的ld 文件的路径。1.因为是交叉编译,所以这里的连接器/usr/bin/ld是X86下的,显然不对。我这里遇到的原因是 路径设置多了空格:(红色部分)
2024-04-03 10:45:32
652
原创 QT5-qmediaplayer播放视频及进度条控制实例
qmediaplayer是QT5的播放视频的一个模块。它在很多时候还是要基于第三方的解码器。这里以Ubuntu系统为例,记录其用法及进度条qslider的控制。代码集成了两种控制方式:1.定时5秒循环让进度跳到某个30秒位置;2.手动拖动进度条控制播放进度。然后,下载一个mp4或其他格式视频(比如mkv),基于以上UI进行播放控制操作。
2024-04-02 09:30:29
482
原创 virtualBox虚拟机安装ubuntu后的必要配置
1. 使能双向copy 粘贴功能。在device menu的 shared clipboard项, 选bidirectional.以上二步完成后,执行device 的安装增强功能选项,即insert guest additional cd image...2.启用共享文件夹。在device 菜单的 shared folder 项配置,-t vboxsf 共享文件夹名称 挂载目录(/mnt/xxx_share)
2024-02-01 11:03:26
573
原创 关于大端序和小端序, 说的比较详细的
对于大端序和小端序说的挺详尽的。这里Mark一下,防止日后缺失。在linux引入CCI_REG之后,引入了I2C传输的大端序和小端序的区分。需要用到下面相关知识。
2024-01-19 10:46:30
406
原创 C++标准学习--智能指针
为了访问这个对象,一个weak_ptr可以通过shared_ptr的构造函数或者是weak_ptr的成员函数lock()转化为一个shared_ptr。当最后一个指向这个对象的shared_ptr退出其生命周期并且这个对象被释放之后,将无法从指向这个对象的weak_ptr获得一个shared_ptr指针,shared_ptr的构造函数会抛出异常,而weak_ptr::lock也会返回一个空指针。3.weak_ptr可以从一个shared_ptr或者另一个weak_ptr对象构造,获得资源的观测权。
2024-01-15 16:33:36
450
原创 C++标准学习--tuple
tuple 是 C++11 新标准里的类型,它是一个类似 pair 类型的模板。tuple 是一个固定大小的不同类型值的集合,是泛化的 std::pair。我们也可以把它当做一个通用的结构体来用,不需要创建结构体又获取结构体的特征,在某些情况下可以取代结构体使程序更简洁直观。std::tuple 理论上可以有无数个任意类型的成员变量,而 std::pair 只能是2个成员,因此在需要保存3个及以上的数据时就需要使用 tuple 元组,而且每个确定的 tuple 类型的成员数目是固定的。
2024-01-10 16:12:15
1044
原创 C++标准学习--多线程
在以往多线程的实现的时候,都是自己去亲自创建线程,采用特殊flag 及锁控制线程的运转状态。这无可厚非,但又似乎有重复造轮子的嫌疑。最近发现了一个线程池的轮子,很不错,ZZ一下。多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。
2024-01-10 12:00:34
408
原创 C++标准学习--关于异常处理exception
人编程时候,需要对入参做精确判断才能使程序继续,在计算过程中,需要对子函数精确划分,对各个步骤的运算做参与值以及输出值的精确限定或判断。这似乎都是不合理的,因为异常,就是你思虑范围之外的东西,你不能基于不可控的东西去产生逻辑,这往往带来新的不可控。那么异常产生后,让程序终止?但是在机器自动编程的时候,机器无法像人一样去基于相关材料准确判断入参,以及中间过程的结果的合法性。异常产生后,反馈到上游代码,上游代码做一系列的调整,直到最上游,这样能纠偏。从哲学的角度讲,这相当于对于人犯错的处理,基于错误的严重性。
2024-01-10 11:38:11
347
原创 C++标准学习--decltype
在实现较为自动化的编程框架的时候,decltype似乎显得比较有用了,与auto功能个别方面重叠,但比auto强大,auto只在赋值是推导,而decltype 可以推导类型而定义新的具有初值的变量。在特殊场合有一定作用,比如在基于部分闭源的库开发一些功能的时候可以获取未知类型变量的类型。decltype 可以获取变量类型, (并不同于python的type,但python能打印出type获取的名称, C++通过typeid实现)。另外在对于lambda闭包的类似使用上也很有用。
2024-01-10 10:38:54
445
原创 C++标准学习--using关键字
using的使用方法挺多的,但常见的易发生覆盖场景需要避免,尽量不使用。using在使用类型名的时候需要头文件。using提高代码间接性,相关内涵可见。
2024-01-09 17:07:14
396
原创 C++标准学习--noexcept
2.对于使用了第三方库的软件,想要使用noexcept关键字来修饰每个非虚函数,就需要对每个第三方库都做一层封装,确保处理了第三方库所有可能抛出的异常,而如果不使用noexcept关键字,异常可以向上传递,统一在一个点处理异常;1.noexcept会影响接口的灵活性,比如基类某个虚函数设置为noexcept,派生类覆盖虚函数时也必须遵守,派生类中只要有一个函数遗漏了noexcept约定,就会导致整个程序在完全没有必要终止的情况下被终止。而是通过函数返回值和出参的方式返回异常,在外部显式的处理异常。
2024-01-09 14:47:32
394
原创 C++标准学习--move
std::move是为了减少copy动作,提升效率,基于对右值引用的使用。右值引用的标志是&&,右值引用专门为右值而生,,让右值引用可以指向左值。。所以,。。因为被声明出的左右值引用是有地址的,也位于等号左边。move返回的int &&是个右值。所以右值引用既可能是左值,又可能是右值吗?。。结论:从性能上讲,左右值引用没有区别,传参使用左右值引用都可以避免拷贝。右值引用可以直接指向右值,也可以通过std::move指向左值;而左值引用只能指向左值(const左值引用也能指向右值)。
2024-01-09 14:29:39
356
原创 C++标准学习--关键字auto
从良好的架构设计角度看,auto 适用范围很窄,但又挺有用,主要针对减少不必要的编码字符增加代码清洁度和降低编码复杂度从而提高编程效率。
2024-01-09 09:58:13
377
原创 HTTP远程camera视频流传输的一个方案
GitHub - jacksonliam/mjpg-streamer: Fork of http://sourceforge.net/projects/mjpg-streamer/
2024-01-05 09:21:19
398
转载 【转载】【有用】gitee 拉取或push 代码https 协议的地址发生证书错误的解决(server certificate verification failed. CAfile: /etc/s)
Pete Clark:“如果在ubuntu机器上运行,则可能是Web服务器的CA证书不在/etc/ssl/certs/ca-certificates.crt文件中。#如果此HTTPS服务器使用由表示为捆绑软件,证书验证可能由于证书有问题(证书可能已过期,或者名称可能与网址中的域名不匹配)。#curl默认情况下使用“捆绑包”执行SSL证书验证,证书颁发机构(CA)公共密钥(CA证书)。这并不意味着证书可疑,它可以是自签名的,也可以由不在系统的CA列表中的机构/公司签名。关闭系统的安全认证。
2023-12-20 15:21:25
220
原创 树莓派相机tuning方法文档机翻
为了编写相机驱动程序,可以复制未校准的tuning文件,该文件应提供可识别的图像。根据您使用的平台,复制vc4/data/uncalibrated.json(Pi 4及更早的设备)或isp/data/uncalibred.json(PI5)中的一个。相机调整工具(CTT)是一个Python程序,旨在从一组相对较小的校准图像中生成一个完全工作的相机调整JSON文件。同样,这应该使用未校准的调优文件。有两种类型的校准图像,即带有麦克白图表的校准图像和另一组用于测量透镜阴影的完全均匀图像。这些图像也可以省略。
2023-12-01 11:32:22
1076
转载 git clone断点续传
当git项目较大或网速不快的情况下,git clone可能会中断导致要重新操作,那如何进行断点续传呢。4. 命令行执行 git checkout FETCH_HEAD。1.新建目录, 命令行进入目录,执行 git init。2. 命令行执行: git fetch [项目地址]3. 若断掉后,重复执行步骤2, 直到完成下载。版权协议,转载请附上原文出处链接和本声明。版权声明:本文为omage原创文章,遵循。
2023-11-10 11:20:41
1236
原创 secureRT登陆树莓派乱码问题
option->session options->appearance进入后,设置 character encoding 为 UTF-8。原因是secureRT没有设置中文字符支持引起。
2023-11-09 16:03:34
106
原创 virtualbox虚拟机磁盘增加
2. 在Oracle VM VirtualBox 管理器界面,点开 (1)“管理” -> “虚拟介质管理器”, (2)选择 "ubuntu20forxv6.vdi"(也就是我想要进行磁盘扩容的虚拟机名字), (3)调节磁盘大小,我这里原来是48GB,我调节到了64GB。5. 运行sudo fdisk /dev/sda,通过一系列指令,添加新的磁盘分区,在我这里新的磁盘分区名称为/dev/sda3,可以看到该分区大小为16GB,因此现在电脑可用的磁盘空间从48G增加到了64G。step 1:查看uuid。
2023-10-20 14:13:16
386
原创 ubuntu18.04安装后时间日期乱码及terminal打不开解决方法
修改/etc/environment(在文件的末尾追加): LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh:en_US:en" 注意访问etc文件的方法:命令 (sudo nautilus) 新建一个具有管理员权限的文件窗口(默认位置是根目录,须配合sudo命令),可以在此窗口中在任意位置粘贴、创建、修改文件或对任意位置的已有文件进行修改、删除、移动操作。重新登录后生效,执行ll和date可见,不再出现乱码,执行locale可见当前的语言环境.打开 sudo 配置文件。
2023-10-20 09:31:34
365
原创 vmware下ubuntu修改文件导致无法正常进入的解决
重启到登陆界面后,按ctrl+alt+f3(有的说f1 或f2) 可以进入命令行界面。输入用户名密码,然后sudo su到root用户,修改错改的文件,然后reboot即可。
2023-07-14 16:05:13
193
原创 vmware设置共享文件夹如果看不到文件夹的处理
(2)输入:vmhgfs-fuse .host:/ /mnt/hgfs ,共享文件挂载到hgfs目录下。(1)如果/mnt下没有hgfs文件夹,需要自己手动创建。输入:mkdir /mnt/hgfs。(3)查看是否挂在成功,ls mnt/hgfs。
2023-07-14 15:37:17
3390
原创 (双目)相机校准角点提取问题
CV_CALIB_CB_NORMALIZE_IMAGE -在利用固定阈值或者自适应的阈值进行二值化之前,先使用cvNormalizeHist来均衡化图像亮度。CV_CALIB_CB_ADAPTIVE_THRESH -使用自适应阈值(通过平均图像亮度计算得到)将图像转换为黑白图,而不是一个固定的阈值。CV_CALIB_CB_FILTER_QUADS -使用其他的准则(如轮廓面积,周长,方形形状)来去除在轮廓检测阶段检测到的错误方块。针对角点提取过程中出现的角点提取不准确的问题做了算法的修改。
2023-06-29 19:01:52
74
C++ 的websocket通信示例代码
2024-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人