自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 RCNN系列网络的理解

RCNN, FAST RCNN, FASTER CNN, MASK RCNN

2023-10-16 16:55:24 142

原创 libtorch之cv::Mat和Tensor的互转

使用c++ libtorch开发, cv::Mat和torch::Tensor的数据互转

2023-09-27 20:01:12 368

原创 libtorch之tensor的使用

它将b的第3个围堵作为c的第一个维度,b的第二个维度作为c的第二个维度,b的第一个维度作为C的第三个维度,所以c的维度是5x5x3。这里需要申明的一点,这里只是数据维度的调整,并没有调整数据存储空间,tensor数据的存储是线性存储的。通过下标的访问,返回的是一个tensor对象,即使是最后一维元素也是,无法得到像float,int这样的数据类型,需要使用的tensor的item函数获取。tensor的拼接有两种基本形式的拼接,一种是stack式的扩展维度,另一种是cat形式的在某个维度上的连接。

2023-09-26 09:28:47 457

原创 通用插件框架体系-媒介系统

在实际的项目中,很多场景需要我们在不知道对象具体类型的情况下构建拷贝对象、复制数据、归档数据等。如在一个基础类库中管理了诸多的派生类,这些类是以基类类型指针或无类型指针管理的。另一种典型的场景是基础类库中要跨线程复制和拷贝数据时。这些场景有一个典型的特点是基础类库不知道派生对象的具体类型。媒介系统就是要建立一套机制,在这种场景下构建对象和归档对象。这一种需求类似于c++的运行时类型鉴定(RTTI),但又超越了运行时类型鉴定提供的能力。

2022-12-19 07:23:01 283 1

原创 通用插件框架体系-日志系统

日志,作为一个基功能有着广泛的应用,本文介绍了一种日志系统的实现,同时支持windows和linux两种平台。首先实现了一个基本的类CTrack,再以这个类为基础提供了一个对外的接口Track,之后再定义了各种宏,方便模块的使用。

2022-12-17 09:23:07 518 1

原创 halcon一维测量

halcon的一维测量核心步骤如下:1.通过一个矩形ROI创建测量对象,他的ROI是一个Rect2矩形,将在这个矩形phi方向上测量。2.调用单个尺寸测量或多个尺寸测量。3.关闭测量对象。代码如下:void TestProc1D(QWidget *w){                 QSize size = w ->size();          

2015-07-01 21:29:05 3347

原创 光学测量的精度

决定光学测量系统的精度,有哪些要素呢?首先我们看相机,相机的像素,诸如3876x2584这样的数据,更有直观放入表述叫100,500,800万像素。另一个是视场,视场诸如100cm X 80cm等,是拍摄对象真实的尺寸,这个视场的大小与镜头的放大、缩小倍数有关(更直接的说与焦距有关)。接下来我们看视觉分辨率,若100cm的距离成像到3876个像素上,那么在这个方向的分辨率就是100/3876

2015-07-01 21:07:58 3935

原创 halcon二维测量

halcon二维测量的基本步骤1.图片预处理,这里指的是图片的滤波等手段,使要测量的特征凸显化,有效去除噪点干扰等。2.阈值化,通过阈值化抽取出图像的特征,通常使用灰度阈值化,但halcon中没有特意的将图片转换成灰度图,而是直接调用阈值化处理函数。同时灰度直方图能帮助开发人员快速找到阈值范围。3.阈值化之后是求解图片的联通区域,一般阈值化之后存在很多连通区域,还要使用select_s

2015-06-29 21:43:09 7673 1

原创 PCM转WAV

//.H**********************************************************class QPcmToWav : public QObject{    Q_OBJECTpublic:    QPcmToWav(QObject *parent = 0);    void setFormat(const QAudioFormat

2015-03-07 11:10:38 532

原创 Qt动态重生类厂

class QConstructHelper{public: virtual void * create() = 0;};templatetypename T>class QMetaTypeConstructHelper : public QConstructHelper{public: QMetaTypeConstruct

2015-03-07 11:07:57 544

原创 简单通用数据访问映射层

与简单数据访问层配合的命令道SQL语句的映射层,目标构建通用代码,使用不同的配置文件完成不同数据访问功能。

2015-03-07 11:02:53 587

原创 简单通用数据访问层

使用Qt实现的简单的通用数据访问层,方便构建通用数据访问。

2015-03-07 10:58:29 826

原创 树的非递归深度优先遍历

void GZLTBydDataExt::readFromXml(QDomElement & secondElem){ //QDomElement elem = secondElem.firstChildElement(); //while(!elem.isNull()) //{ // this->readMathData(elem);

2015-01-26 20:46:22 934

原创 c++中带空格路劲的处理

处理的原则是使用一个双引号将这个路劲包含,但c++中双引号是一个关键字符,所以必须使用转义字符完成这一功能。见代码:QString str;if(data.opt.contains(" ")){     str = QString("\"%1\"").arg(data.opt);}else{     str = data.opt;}Q

2014-12-04 21:06:45 1836

转载 字符串相似度

这个算法来源于网上,但忘记了出处,对其使使用了isSame封装,然后用在了自己的网页数据抓取代码中。//求解两个字符串的相似度int calculateStringDistance(const string &strA, const string &strB){ int lenA = (int)strA.length()+1; int lenB = (

2014-12-04 20:59:51 511

原创 mfcc

在研究MFCC算法时,从网上下了一份代码,经过小改编译通过了,可程序一跑就蹦,费了好几天的功夫也没找到问题的原因。化了一个月的时间边看资料,边整理代码,参照原有代码自己实现了一份。目前代码调通了,还没有能力验证结果的正确性。     这里使用的FFT算法是从网上下载的。稍后也将其附上。欢迎有MFCC经验的朋友帮忙指正其中存在的问题。      #ifndef MFCC_

2014-12-04 20:47:26 984

原创 定时关闭消息对话框

class QTimeDialog : public QDialog{public:    QTimeDialog (const QString & str,QWidget *parent = NULL);    ~QTimeDialog ();    static void show(const QString & msg, QWidget *parent = NULL)

2014-12-04 20:34:05 446

原创 c++数值处理

1.浮点数的比较2.防止被除数为0情况1.浮点数的比较不可以直接比较,需要给定一个差值判断两个浮点数相减的结果是大于还是小于这个差值  bool operator>(double d1,double d2)  {       double diff = 0.00000001;       if(d1 - d2 > diff)return true;       

2014-12-04 20:29:24 603

原创 Qt文件日志

#include class CFileMessageHandler{public: CFileMessageHandler(); ~CFileMessageHandler();protected: static void myMessageOutput(QtMsgType type, const QMessageLog

2014-12-04 20:22:24 759

原创 菜单式弹出窗体

弹出式窗体他的要求如下: 1.点击按钮弹出这个窗体在按钮旁边,并可编辑内容。 2.鼠标点击其他地方(非弹出窗体),这个窗体关闭注意:1.这里基类必须是QDialog. 2.创建他时必须指定parent. 3.这个窗体必须new出来。//头文件class GTZLSetWidget : public QDialog{

2014-12-04 20:17:07 581

原创 工具栏按钮下拉菜单

Qt, execl工具栏按钮下拉菜单的实现,创建一个弹出式菜单,将其弹出的位置设置在按钮的下面。

2014-12-04 20:11:09 2113

原创 简单观察者模式

Qt,使用模板方式实现的观察者模式。

2014-12-04 19:50:36 486

原创 离散余弦变换DCT

离散余弦变换的函数如下:void DCT(double *data,int len,double * dct,int dctnum){    //double temp[100];    //memset(temp,0,100*sizeof(double));    //memcpy(temp,data,len*sizeof(double));    d

2014-11-02 16:28:49 747

原创 mel滤波器算法设计

什么是mel滤波器呢?mel滤波器是在mel频率上均匀分布的三角滤波器        mel频率与时域频率之间的关系是:        me滤波器在mell频率上均匀分布,那么他的带宽是:        知道了中心平率,可以换算成时域频率:          mel滤波器的传递函数如下:    实现代码如下:#ifndef MEL

2014-11-02 16:25:59 5774

原创 QTreeView实现复选框

好久没有关注这些细节了,竟然记得butai

2014-10-09 15:08:57 1051

原创 基于OPENCV 一维条码识别源码。

#include "stdafx.h"#include "opencv/cv.h"#include "opencv/highgui.h"#include "opencv/cxcore.h"#include "TestBarCode.h"#include #include "PointTrans.h"#include #include us

2014-09-30 07:48:39 8239 2

原创 两个在多线程环境下使用的小工具类

templateclass QThreadSelfQueue{public:    QThreadSelfQueue(){}    void push(T * p){        m_semaphore.release();        m_list.push_back(p);    }    T* pop(int timeout = -1)

2014-09-30 07:21:57 481

原创 Qt QTcpServer的使用

Qt集成许多小工具类,使开发者使用起来十分

2014-09-30 07:05:22 865

原创 敏捷开发—用户故事

1.1. 敏捷开发的目的质量风险前移适应需求变化及时总结、思考和促进团队成长。  2.      User story和需求列表的不同需求栈通常如下:序号功能详细描述1功能1…………………………………………2功能2…………………………………

2014-08-14 20:08:00 1299

原创 高并发服务器设计总结2

高性能服务器设计总结(2)       服务器和客户的通讯,存在两种基本的情况,1.      客户到服务器。2.      服务器到客户。 基于消息的通讯系统,特别是在HTTP之上实现的诸如soap,xmlrpc,xmlpp等,这些都是短连接,易于构建从客户到服务器的通讯,但服务器要主动向客户发数据就没那么容易,原因是客户可能在子网或是子网的子网中。基于短连接的通讯也可变

2014-04-27 11:09:36 685

原创 回忆成都之行

迫于西安就业形势的压力和对成都的向往,4月17日简短的成都之行给我留下了不少值得思考的地方。1.       向往成都,到底向往什么?2.       现实与理想中的成都存在反差时,应如何面对?3.       做一件事情如何让理性的决策战胜感性的决策? 实话说,在我出行之时我还没有考虑清楚第一个问题和第二个问题,只是抱着一腔的热情和向往踏上了去往成都的路,头脑中呈现的成都和现

2014-04-27 11:00:53 1034

原创 高性能服务器设计总结(1)

高性能服务器设计在高性能服务器设计中首先应保持一下几个原则1.       对线程不是越多越好,原则上应和CPU核数相等,这是为什么呢?线程数超过了CPU核数,执行时的环境切换将耗去不少的CPU资源。2.       能不用锁最好,即是用,锁锁定的线程越少越好。推存仅在两个线程间使用锁,锁锁定的仅是数据,千万不要去锁定函数,锁定函数锁的作用域无法良好控制。锁锁定的粒度越小越好,

2014-04-07 08:19:54 682

原创 一次糟糕面试的思考

1.      沟通原则之一,在沟通过程中发现对方问的问题有问题时,应在融洽的气氛中当面指出,事后想找机会指出是无力的,并且可能没有这样的机会。但切记不要将这一切变成一场争论。 2.       沟通原则之二,当对方与你针锋相对时应怎么办呢?最明智的做法首先应指明这种状态,希望双方冷静下来之后寻求新的沟通方式。若这种方法无法凑效,应立即停止沟通。 3.       沟通

2014-03-31 12:55:06 676

原创 基于opencv的一维条码识别

一. 条码图像处理过程        图像的大致处理流程如下:         1.将彩色图转变成灰度图         2.对灰度图均衡化         3.将灰度图转换成二值图         4.对二值图进行腐蚀         5.识别边界检测轮廓         6.对每一个轮廓包围的区域进行特征识别,判断是否是条码区域。    

2014-03-20 14:52:42 9635 1

原创 面对一个设计需求,是全新设计一个系统还是基于现有系统改造一个系统?

问题:面对一个设计需求,是全新设计一个系统还是基于现有系统改造一个系统?1.优先选择基于现有系统改造出一个系统,对现有系统的选择必须保证以下几个特点   a.类似系统。   b.成熟系统,并得到广泛认同和好评的系统。   c.已经大量应用的系统。   d.有广泛可扩展可利用的模块或资源的系统。      为什么要这样选择呢?优先需求只是一个大概,需求被提出以后如何变化和

2013-09-27 10:09:47 1040

原创 分页多表联查和效率问题

先看一个较常见的多表联查时的分页:SELECT TOP (30) T_EVENTS.EVENT_TIME,T_EVENTS.CATALOG_ID,T_USERS.USER_NAME,T_HOSTS.HOST_NAME,T_HOSTS.HOST_ADDRESS,EVENT_NAME,EVENT_CONTENTFROM T_CATALOGS,T_EVENTS,T_USERS,T_HOSTS

2013-07-31 10:34:01 1167

原创 SQL连接查询语句

1.left join        left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL. 2.right join        right join(右联接)

2013-06-28 16:03:29 465

原创 QXmlStreamReader能读取中文吗

QXmlStreamReader能读取中文吗? 答案是肯定的,但为什么有时会出错呢? 在XML文件的开头有一行 的鸟东西,这里的的encodeing就是解析XML时使用的编码方式,如果它设置的不正确将无法正常解析。在有中文的环境下要使用方式,还有诸如GB-2312也能行。  对于文件可以设置encodeing的值,对于从从网络上收到的xmlrpc报文,通常没有这类的东西,导致解析的

2013-06-22 10:31:10 1818

原创 思考QT的MV对开发简化

思考QT的MV对开发简化    人类软件开发的动向是什么呢?在这有两个值得关注的问题:    1.人类开发的软件一大部分是将人类从繁重和复杂中解脱出来,另一类是提高人类的生活体验和感受使生活变得更美好。    2.开发技术的变迁似乎与第一个吻合,为使开发人员从繁重中解脱,出现的各种开发语言、模块和各种开发库。    那么QT,在设计初期,是否要求开发人员解决复杂的逻辑和数据组织呢?

2013-06-22 10:28:28 1102 1

原创 再思MVC结构应用在桌面程序中的得失

在桌面应用程序开发中,面对于不同规模的程序,应用起同一种结构的MVC,显得的有些见酌。根据MVC的概念将程序分成3个部分,界面,业务,数据模型。程序实现的核心主要集中在业务和数据的组织上,那么更具不同部分的复杂度,将有不同的结构形式,是程序在开发的便利性、程序的扩展能力、生命周期上得到最优的提升。 1.       业务复杂程度对程序结构的影响: 所谓业务的复杂是指业务算法的复

2013-06-22 10:24:34 2148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除