未分类
wfh2015
这个作者很懒,什么都没留下…
展开
-
redis客户端发送数据的格式(resp协议,以string为例)
redis客户端发送的数据格式示例原创 2022-12-10 21:25:09 · 370 阅读 · 1 评论 -
`bytesToHuman`: 字节转换成可读形式
提取 redis原创 2022-12-06 23:00:44 · 293 阅读 · 0 评论 -
TCL数组、关联数组的使用(打印、遍历、访问、数组长度)
#!/usr/bin/tclsh# -------------数组-------------set lan(0) TCLset lan(1) C++set lan(2) Javafor {set i 0} {$i < [array size lan]} {incr i} { puts "index: $i, value: $lan($i)"}foreach index [array names lan] { puts "key: $index, value: $lan原创 2021-10-16 19:45:22 · 2365 阅读 · 0 评论 -
TCL特殊变量env遍历以及操作
TCL有个特殊变量叫做env,用来保存环境变量的数据。网上有提供输出此环境变量的方法,但是存在一定的局限性,下面提供了一种方法,输出env的键值对#!/usr/bin/tclshforeach key [array names env] { puts "key: $key, value: $env($key)"}puts "env size: [array size env]"puts "LANG: $env(LANG)"打印输出为:fh@Feihu-3 learn % ./ar原创 2021-10-16 19:10:01 · 3338 阅读 · 0 评论 -
使用golang开发项目demo
使用go语言开发项目的现状很多公司都是使用go语言来开发程序,但是开发中以及最终交付的代码需要满足以下条件:能满足DevOps要求,对于开发来说,需要提供一个构建脚本(build.sh)即可内网也能编译,即build.sh能执行的环境属于内网,不能直接下载第三方库能在流水线上跑,但是流水线所在的服务器对于权限要求很高,不能随意更改/etc/profile等相关配置文件代码管控使用git,构建出来的可执行文件内部必须有git信息、版本号、构建日期等信息写代码的工具使用goland,goland方原创 2021-08-29 16:33:25 · 2342 阅读 · 0 评论 -
Linux C网络地址格式转换demo
in_addr sockaddr sockaddr_in结构体typedef unsigned char __uint8_t;typedef short __int16_t;typedef unsigned short __uint16_t;typedef int __int32_t;typedef unsigned int __uint32_t;typedef原创 2020-12-20 21:21:13 · 184 阅读 · 0 评论 -
大端字节序与小端字节序笔记
大端字节序(big-endian):最大字节地址出现在最低有效字节上(LSB,Least Significant Byte)。小端字节序(little-endian):最大字节地址出现在最高有效字节上(MSB, Most Significant Byte)。不管大端还是小端,单个字节顺序是相同;网络协议指定了字节序,TCP/IP协议使用了大端字节序(一般称为网络序)。本地主机的字节序称为(主机序)。代码:#include <stdio.h>#include <stdlib.h&原创 2020-12-19 17:10:58 · 174 阅读 · 1 评论 -
基于图像的拉普拉斯(Laplacian)二维算子的不同模板代码实现
在前面的博客中,提到了卷积操作与相关操作,cv::filter2D指的是图像相关操作,所以本博客直接调用此函数,不再使用代码复现相关操作。 图像的一些定义如下,具体操作请参考冈萨雷斯的数字图像处理:数字函数的微分可以用不同的术语定义. 也有各种方法定义这些差异. 然而,对于一阶微分的任何定义都必须保证以下几点: (1) 在恒定灰度区域的微分值为零; (2) 在灰度台阶或斜坡处微分值非零...原创 2018-06-13 22:32:35 · 6007 阅读 · 0 评论 -
基于OpenCV的中值滤波代码仿真
中值滤波主要是用来除去椒盐噪声的,基本操作如下: 1. 抠出区域 2. 排序 3. 中值 还是老规矩,此代码仅仅是用来学习,暂时不用管它速度。 这一份代码主要做了以下工作: 1. 自定义了一份新的中值滤波函数 2. 调用OpenCV的中值滤波函数 3. 比较两个函数的处理结果,如果所对应的元素值小于一定范围,则表示两个元素值是一样的,显示黑色,反之,则显示白色备注:因为在实际代...原创 2018-06-14 16:40:04 · 502 阅读 · 0 评论 -
C++11中的shared_ptr案例
之前的博客基本是对算法仿真,写的我都吐了。现在是对C++11的shared_ptr做一个demo。 不说废话,下面是效果图: /*** 智能指针shared_ptr Demo代码* 软件环境: Windows 10 + Visual Studio 2015* 硬件环境: CPU i7-8750H; RAM 8G; Gpu GTX1050Ti* 参考文献: PaulDeitel, ...原创 2018-06-14 22:45:57 · 403 阅读 · 0 评论 -
基于OpenCV3.x的SVM字符分类源码及其分析
SVM是一种二分类算法,当然,也可以去做分类。OpenCV的SVM已经提供了多分类,不需要我们手动的去写代码。我们可以将SVM用在数字和字符的分类上面, 比如我们已经获得一副图片,去判断这个字符到底是数字0-9中的哪一个?根据SVM的分类,我们可以准确地知道这副图片属于哪一类。 由于涉及到机器学习以及样本的个数不同,不同的硬件将耗费的时间也不同。下面列出我试验的电脑硬件配置CPU i7-87...原创 2018-06-23 22:45:33 · 1673 阅读 · 5 评论 -
C++11中的统一初始化
/**本代码执行平台:硬件: CPU: i7-8750HGpu:GTX 1050ti软件:windows 10 + VS2015参考:C++ Primer Plus (第六版) 中文版*/#include <vector>#include <initializer_list>#include "opencv2/opencv.hpp"class ...原创 2018-06-18 22:36:15 · 535 阅读 · 0 评论 -
基于OpenCV2.4.x的SVM字符分类源码及其分析
之前写了一个博客,是关于opencv3.x版本的svm分类代码。至于代码我也懒得贴上来了,我直接提供一个下载地址吧。 当然,演示效果还是要有的,效果图如下: 最后来个提示,等了半天没结果的,不是程序问题,而是读者的计算机性能不高,建议在Release下运行,并等等,再等等。还有,有些时候CPU不能完整发挥其性能,建议自行百度看看怎么弄才能让他发挥最大的性能。。...原创 2018-07-01 18:56:20 · 335 阅读 · 0 评论 -
基于dlib的68个特征点检测
dlib有个很炫的功能,就是可以检测人脸的68个特征点。本博客目的是教怎么调用dlib的API去实现这一功能,还是老规矩,代码会提供。下载地址在这儿。之所以提供下载地址,是因为文件要下载,从官网上下载速度贼慢贼慢,我特么都下了个把小时了,最后还是csdn上一哥们儿给下载到了。另外一个方面,我很讨厌从那种控制台或者是terminal输入参数,因为我是程序员呀,直接从代码改个路径不久好了,至于那么麻烦...原创 2018-07-01 19:37:48 · 5385 阅读 · 3 评论 -
VS2015(VS2013)生成动态库(lib文件和dll文件)
很多朋友想使用VS2015生成动态库(因入库lib文件和dll文件),但根据网上资料生成的却只有dll文件,没有lib文件,主要原因是没有按照指定格式去写代码,下面我写出一个通用的模板来简单阐述怎么生成lib文件和dll文件。当然,本博客的测试代码和工程将会提供下载链接,如果是认真读完本博客,一定会知道怎么做。如果是懒人或者是伸手党,请付出金钱或者CSDN金币代价去下载! 假设我们写一个.cpp...原创 2018-08-05 00:47:15 · 5739 阅读 · 0 评论 -
基于tinyXML2的xml文件基本操作
tinyXML2是一款非常轻便的第三方操作xml的C++库,现在网络上许多教程都是基于tinyXML,为此制作了以下的demo。tinyXML2可以从官网去下载,也可以去github下载。本Blog使用的是tinyXML2的6.0.2版本作为讲解。同时,本博客也将附上本demo的下载地址,读者可以自己去测试。首先,tinyXML2使用起来方便,既可以将其生成dll库,也可以直接将tinyxml...原创 2018-06-12 19:37:47 · 2755 阅读 · 0 评论 -
基于opencv的Bernsen二值化算法
Bernsen算法是比较出名的二值化算法,网上很多Bernsen代码是基于Matlab的,本人觉得其速度比较慢,所以便基于OpenCV改写了其算法,具体参考的博客链接已经忘记了,希望博主原谅。如果缺少某些函数,比如最大值最小值函数,可以参考本人其他博客,里面会提供。废话不多说,直接上代码:/** @brief 得到矩阵中的最大值与最小值@param m 单通道CV_8UC1类型矩阵@...原创 2018-05-23 13:09:18 · 2752 阅读 · 1 评论 -
基于opencv的Niblack二值化算法
Niblack算法是比较出名的二值化算法,网上很多Niblack代码是基于Matlab的,本人觉得其速度比较慢,所以便基于OpenCV改写了其算法,具体参考的博客链接已经忘记了,希望博主原谅。如果缺少某些函数,比如最大值最小值函数,可以参考本人其他博客,里面会提供。废话不多说,直接上代码:/** @brief 计算单通道灰度图像的平均值@param src 单通道灰度图*/static...原创 2018-05-23 13:02:48 · 3839 阅读 · 2 评论 -
OpenCV3.0 或OpenCV3.1 与cuda编译出现LINK: warning LNK4044: 无法识别的选项/LC:/Program Files/XXXXXXXX/lib/x64
OpenCV3.0 或OpenCV3.1 与cuda编译出现LINK: warning LNK4044: 无法识别的选项“/LC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64”;已忽略的问题。好吧,为了显示更好一点,还是截个图吧。 。 为了防止语句有歧义,就简单说一些重点要注意的东西吧。 OpenCV的主模块的源码的原创 2016-12-03 21:06:05 · 6478 阅读 · 0 评论 -
OpenCV库的部分配置
很多人在配置OpenCV库的时候,有一栏要填写.lib文件的名字,文件多了就会很麻烦,但是有没有偷懒的方法呢?答案是有的,下面就来介绍一下。假设我的很多个.lib文件的目录是放在E:\lib这个路径下, 首先,要打开dos界面。默认的路径都是C盘下,有个地方要注意,如果你直接就是 cd E:\lib发现还是不行的,当前路径还是没有改变。这个问题有两个方法可以解决:方法1:原创 2017-08-14 09:11:04 · 490 阅读 · 0 评论 -
OpenCV中两个旋转矩形RotatedRect的交集
OpenCV中两个旋转矩形RotatedRect的交集原创 2017-10-13 15:40:55 · 6517 阅读 · 0 评论 -
基于OpenCV的图像旋转
很多人在使用OpenCV的旋转函数的时候发现,有些地方不好用。主要地方在于: <1> 我只想得到一个点旋转后的坐标位置在哪儿 <2> 旋转后的图像会超出原始图像的大小,所以必须解决旋转后图像大小问题。 <3> 以任一点旋转,且旋转之后的大小也能完美容纳图片。而一般的图像旋转中心点都是以原始图像的中心位置 <4> 不想插值。且旋转后的非图像点的值希望能够指定。/** 旋转图片* 参考《Op原创 2017-12-12 08:32:09 · 2546 阅读 · 0 评论 -
Cmake使用中常见问题及其解决方法
Cmake使用总结Cmake中常见问题:## 标题 ## 1. 下载问题。经常需要从国外下载第三方包,由于网络问题可能会下载失败!建议开启VPN进行下载,或者从其他下载源下载后进行手动解压并放到指定路径下。 2. 路径问题。Cmake中往往需要填写路径,但是许多人填写的路径极其不规范,比如路径“C:\Program Files (x86)\新建文件夹 (2)”,这个路径会有三个问题:第原创 2018-02-02 15:05:54 · 12176 阅读 · 3 评论 -
基于OpenCV数据结构最小二乘法拟合圆-代码部分
对于网上常用的拟合圆代码(经过修改, 因为除数可能为0)/** 参考: http://blog.csdn.net/liyuanbhu/article/details/50889951* 通过最小二乘法来拟合圆的信息* pts: 所有点坐标* center: 得到的圆心坐标* radius: 圆的半径*/static bool CircleInfo2(std::vector<...原创 2018-03-20 15:37:50 · 4134 阅读 · 6 评论 -
opencv中的adaptiveThreshold分析与验证
opencv原始的adaptiveThreshold代码void cv::adaptiveThreshold( InputArray _src, OutputArray _dst, double maxValue, int method, int type, int blockSize, double delta ){ Ma...原创 2018-04-11 14:33:37 · 2702 阅读 · 0 评论 -
基于OpenCV的函数返回Mat与通过引用获取参数的效率对比
/** 本代码执行的平台是VS2015+OpenCV3.1+VC14 x32编译器* CPU: Intel(R) Core(TM) i5-5200U CPU @2.20Ghz* RAM: 8GB** 测试图片分辨率为:1212 * 605** 某个时刻Debug测试结果为:* Return:1.0174e+07* NotReturn:8.10438e+06* Ratio: ...原创 2018-04-22 10:14:22 · 4698 阅读 · 0 评论 -
图像中卷积(Convolution)和相关(Correlation)的区别以及代码具体实现
卷积(Convolution)与相关(Correlation)说明很多人都听说过卷积(Convolution)的大名,也有不少人听过相关(Correlation)。但是更多的人是搞不清楚二者的区别,甚至认为二者是同一个东西。有一份资料讲解的非常好,给大家提供一下链接去下载。本博客在最后将会提供完整的测试代码。一维相关(Correlation)/** @brief 1D数据进行相...原创 2018-04-13 09:55:07 · 11046 阅读 · 0 评论 -
非极大值抑制(NMS)仿真代码:来自论文Efficient Non-Maximum Suppression
非极大值抑制(Efficient Non-Maximum Suppression)这里说的非极大值抑制与平时说的非极大值抑制有点不太一样, 平时说的NMS指的是在检测算法中的应用,将多个矩形框进行筛选,筛选出所需要的矩形框。而本文所说的NMS主要是来自一篇论文Neubeck A, Gool L V. Efficient Non-Maximum Suppression[C]// Internat...原创 2018-04-13 10:44:06 · 3506 阅读 · 0 评论 -
ImageJ的自动二值算法C++实现
ImageJ是一款非常优秀的、跨平台的开源软件,里面的源码是用Java编写,之所以用Java是因为Java可以跨平台。常用的图像处理是基于C++和OpenCV的,所以本人对ImageJ的自动二值化算法进行修改,使其能在C++上也能运行。 ImageJ的自动二值化算法大约有16种,之前有前辈修改之后在C#上运行。 读者也可以去下载本博客的完整测试代码:https://download.csdn....原创 2018-05-19 10:01:25 · 3931 阅读 · 8 评论 -
基于opencv的sauvola二值算法
sauvola算法是一个比较不错的局部二值化算法,有不少人也具体实现了其代码,但是本人觉得里面存在一些bug和不方便opencv调用,所以对其适当的修改。 但是修改之后,仍然就是存在一些问题,就是难以找到一个比较大的数据类型去存储,这个bug等以后有空再处理。不过通过修改后的代码进行学习,还是很不错的。代码如下:#include "opencv2/opencv.hpp"static...原创 2018-05-23 12:42:42 · 5729 阅读 · 2 评论 -
Otsu(大津法)源码级讲解
Otsu(大津法)源码级讲解原创 2016-10-18 22:04:11 · 1173 阅读 · 0 评论