QT在VS下配置 如果从国外网址打开会非常的慢,在这里提供网址为:安装:下载好对应的版本之后,关闭vs 然后双击文件等待安装插件。笔者是本来安装了这个工具,一不小心手抖卸载掉了。可以在扩展和更新对话框中选中联机,在最右方的搜索框中,输入关键词QT就可以得到相应的QT vs tools,点击下载安装就好了。配置QT插件open已安装好的VS,在VS菜单栏出现“QT VS Tools”时,表示工具安装成功。点击获取下拉菜单中选择“Qt Options”添加QT中关于VS2015对应的QT库
链表(一) 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。单向链表(增、删、改、示) #include <stdio.h>#include <stdlib.h>struct Node *CreateNewNode(struct Node *next);void DisplyNode(str...
LRC校验 void DataToSingle(u32 input_data,u8* Out_DataBit) //ÊäÈëÊý¾ÝÉϵÄλÊý{ u8 temp_dataBit[20]; u8 i,j,n; while(input_data!=0) { temp_dataBit[i++]=0x80+(input_data%10)&0xff; input_data=input_data/10; } n=i; BitCount=i; for(j=0;j<i;.
stm32f407之Modbus开发(1) 在之前的项目中,基本上都是用F1系列开发就足够,本次项目数据吞吐量稍微大了些,并对实时性提出了更高的要求,因此终于对f407下手了。第一次使用这款芯片,说实话该芯片确实很贵,好在不差钱。笔者对整个系统开发中的modbus通信模块进行记录。在这之前还是要对单片机的USART通信有一个较为深刻的认识,之前对于modbus开发要么是用现成开发的库,笔者在这里通过USART+DMA实现MODBUS通信。USART...
RNN例程 import osimport numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import modelsfrom tensorflow.keras import datasets,Sequential,layers,optimizers,metricsfrom tensorflow.keras.layers import Conv2D,MaxPooling2D,Flatte.
Tensorflow 2.1.0 深度小白之第一个入门程序-非线性模型 神经网络的组成单元——神经元(感知器)感知机模型是最早的人工神经元数学模型,感知器不仅仅能实现简单的布尔运算。它可以拟合任何的线性函数,任何线性分类或线性回归问题都可以用感知器来解决。还可以完成一些简单的视觉分类任务,比如区分三角形、圆形和矩形等。感知机模型的结构如图: MNIST数据集通常对于一个小白来说,使用MNIST数据集进行入门学习是最合适的,MNIST数据集不大 ...
关于tensorflow2.x与1.x版本不兼容问题处理 (一)输入:x = tf.placeholder("float",shape = [None,784])y = tf.placeholder("float",shape = [None,10])结果报错:AttributeError: module 'tensorflow' has no attribute 'placeholder'原因分析:Tensorflow 1.x 版本提供placeholder,2.0版本的代码就不能执行。这个代码的意义也就在2.x版本的tensorf.
Win10下安装Matplotlib 1.打开“Anaconda Prompt”命令操作界面,在安装好的tensorflow环境下找python安装目录。2.首先键入“conda info --envs”,“activate tensorflow”切换到tensorflow环境下的python目录,如图所示。3.接着键入python -m pip install matplotlib进行自动的安装,系统会自动下载安装包,下载速度比较慢,可以多次执行下安装命令,完成安装。4.安装完成后,可以用python -m pip..
tensorflow包最全版本下载 gpu版本:https://pypi.org/project/tensorflow-gpu/#historyCPU版本:https://pypi.org/project/tensorflow/#history
AttributeError: module ‘tensorflow‘ has no attribute ‘Session‘ 最近在安装anoaconda之后,准备安装tensorflow 框架,也是一直没有成功,毕竟是新生,注定是前路漫漫,磕磕绊绊。都是一个过程,终将是要成功,但是这个经历是少不了的,慢慢磨啊。由于之前2.0版本的使用比较繁琐,2.0以后对其做了较大的改动,所以使用的时候容易出现兼容性问题。笔者也是遇到了诸多的问题,和大多数菜鸟一样,配置好环境之后,就是来一段测试代码,这让笔者想起了多年的hello C!。具体测试代码如下:import tensorflow as tfhello = tf....
Anaconda安装 百度搜索Anaconda到官网下载安装包。这些都是开源免费的,所以请大家放心下载。进入官网,点击Get Started,选择"Install Anaconda Individual Edition"进入下载选择。如下图所示,根据自己的机型选择合适的版本,笔者选择的版本是win10 x64。这是下载好的Anaconda软件安装包,然后点击安装。点击安装然后等待安装完成。于是在桌面上生成快捷方式,如下图所示。点击打开软件进一步安装相关开发...
深度学习之损失函数、成本函数、目标函数的基本概念 损失函数(Loss function)是定义在单个训练样本上的,是真实值和预测值的非负值函数。也就是就算一个样本的误差。比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的,用L表示 代价函数(Cost function)是定义在整个训练集上面的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均,有没有这个平均其实不会影响最后的参数的求解结果。1、“损失函数”一般是指对单个样本的做的损失|yi−f(xi)||yi−f(xi)|2、“成本函...
C++设计模式之模板模式 在GOF的《设计模式:可复用面向对象软件的基础》一书中对模板方法模式是这样说的:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的接口即可重定义改算法的某些特定步骤。UML类图#ifndef MYBASICCLASS_H#define MYBASICCLASS_H#include <iostream>using namespace std;//抽象基类 实现一个模板的方法class mybas...
Qt chart动态数据显示关键 void MainWidget::updateData(){ int i; QVector<QPointF> oldData = series->pointsVector(); QVector<QPointF> data; if (oldData.size() < 97) { data = series->pointsVector(); } else { /* 添加之前老的数据到新的...
Qt之modbus tcp 客户端主机读写保持寄存器程序 #include "modbusmaster.h"#include "widget.h"#include <QStatusBar>#include"QDebug"#include<QTextEdit>ModbusMaster::ModbusMaster(QObject *parent) : QObject(parent){}bool ModbusMaster::initModbusNetworkMaster(QString address, int port).
Qt之数据库查找setfilter函数运行总结 最近在项目中接入一个简单的数据库功能,关于QT版本的数据库操作网上资料也是铺天盖地,涉及到数据库的基本操作也就是让人朗朗上口的增、删、改、查。但是具体怎么改怎么查,这在实际运用过程中,仅仅掌握基本的是远远不够的,还必须要扩展知识储备,还要做到融会贯通。笔者就在实际运用过程中的一些关键做个简要的记录,给大家一个参考。 在使用查找这个功能时,普遍讲述的是对单一变量的查询,笔者认为数据库上面的内容皆可任意查询。笔者也是在接到项目边学边上,所以很多东西也是刚接触,难免走了弯路,而且还没走...
Qt之QSignalMapper类的使用解决大批量操作问题 最近在用QT在做一个系统管理平台。因为要涉及点击事件,笔者在管理界面上采用了大批量的按钮控件,为什么要用大量的按钮,这个是客户提出的需求所致,但是从技术层面考虑,总是感觉怪怪的。接下来只能从技术的层面一个一个攻破,对于Qt的应用开发,笔者也是一边学一边用,也是艰难前行。小青蛙在慢慢爬出井底。在使用大量按钮控件的同时,就遇到一个严重的问题,大量按钮事件,所对应的槽函数也是大量的。每一个按钮写一个槽函数这种傻大粗的操作是绝对不可取的。当时就早考虑,Qt有没有大批量操作按钮的情况,在网上搜索一番也是...
Qt配置QtXlsx输出Excel文件方法2 新建qt工程,在.pro文件中添加QT += xlsx ,否则会不识别此模块。添加相关头文件#include<QtXlsx/QtXlsx>,注意笔者是用C++开发的,因此要加上命名空间QXlsx。先qmake下,然后在编译代码,这样就可以在生成的debug文件夹下生成名为Test的Excel的文件。至此通过QT使用QtXlsx输出Excel文件完成。当然还有其他方法实现,这个就看大家的选择。...
Qt配置QtXlsx输出Excel文件方法1 最近做了一个简单的管理系统,实现从下位机到上位机的数据连接链接,通过建立数据库实现对下位机数据的记录统计,为了增强下本系统的功能 性,准备将得到的的数据以Excel表格的文件输出。在网上找了些资料,基本上都是采用开源的QtXlsx...
C/C++ const 修饰符的作用 const 变量必须被初始化,未初始化的const变量,编译器会报错,同时在编译的过程中,将其放在内存中的只读区域中,也可别称作“只读变量”,不允许被修改。增加程序的健壮性。在C语言中,enum类型和#define宏定义都可以用来定义常量。 const int a; 表示a是个整型常量 const char *a; //*a是const, a可变 const (char *) pContent;//pContent是const,*pContent可变
PID算法的实现 好久没做电机控制了。以前做了许多PID控制项目,但是都没有正儿八经的记录下来。最近公司接到一个小项目,算是有机会重拾PID算法,还是有点小兴奋。早些年参加很多小车竞赛,多用PID对电机的调速,也算是对PID算法有较多的感触。对于常规使用场合,PID算法是最使用的控制算法。结构简单、易于操作实现。具体算法原理不做赘述,就基于STM32的具体算法实现,笔者在此做一个稍做总结。PID控制系统原理框图如下: 基本控制器PID算法公式为:式中:u(t)-控制器输出控制...
opencv学习第二天(CV_未定义标识符) 最近在opencv学习的时候,老是遇到关于CV_定义符出现未定义标识符的情况,一方面是从网上找的opencv程序版本不一致,高版本对程序中一些定义做了简化和重新修改,导致不匹配情况。后来在网上搜索相关的问题,找到解决问题的办法。笔者遇到的:CV_RGB2GRAY 、CV_MINMAX、CV_WINDOW_AUTOSIZE等。解决办法是:添加头文件:#include<...
opencv学习第一天(错误:未定义标识符 "CV_CAP_PROP_FRAME_WIDTH") 最近由于重装系统的缘故,之前配置好的opencv环境坏了。重新添加之后,之前的程序工程都得在设置一遍。在编译的过程中,出现了一些莫名的错误。 具体的错误如下: 第一个问题是原本是因为缺少dll文件,但是在指定目录已经有了此类文件,这个问题应该是编译的问题。第二个问题才是重点,之前这种写法是完全没有问题的,同样的工程出现这样的问题了。在网上查了查原因,认为是op...
MFC学习第三天(VS2015出现: C4996 'MBCS_Support_Deprecated_In_MFC) 警告 : C4996 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC is deprecated and may be removed in a future version of MFC.解决办法:工程->属性->配置属性->C/C++->预处理器->预处理器定义 ...
MFC学习第二天_02(错误:没有参数列表匹配的重载函数) 错误提示:没有与参数列表匹配的 重载函数 "ATL::CStringT<BaseType, StringTraits>::Format [其中 BaseType=wchar_t, StringTraits=StrTraitMFC_DLL<wchar_t, ATL::ChTraitsCRT<wchar_t>>]" 实例 解决办法:Number.Forma...
MFC学习第二天_01(错误:没有与这些操作数匹配的 "+" 运算符 ) 最近在编写一个MFC代码,参考网上其他相关代码。直接复制粘贴到工程项目中,编译出现如下错误。错误:没有与这些操作数匹配的 "+" 运算符 解决办法:打开【主菜单】→【项目(Alt+F7)】→【属性】→【常规】→【字符集】→【使用多字节字符集】...
图像处理之相机标定(二) 摄像机的内参:摄像机从三维空间到二维图像的投影关系。针孔摄像机模型为6个参数(f,κ,Sx,Sy,Cx,Cy);远心摄像机模型为5个参数(f,Sx,Sy,Cx,Cy);线阵摄像机初始摄像参数为8个参数:(f,κ,Sx,Sy,Cx,Cy,NumCol.NumRow)。f:为焦距,fx,fy为焦距,一般情况下,二者相等,;k: 表示径向畸变量级,如果k为负值,畸变为桶型畸变,如...
图像处理之相机标定(—) 1.相机标定的意义 在进行图像处理的过程中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。相机的标定过程其实就是找一个合适的数学模型,求出这个模型的参数,实现从三维到二维的过程。相机的标定是一个关键的环节,它能有效的计算...
图像处理之图像像素相加 在进行图像检测或识别之前,都需要对原始图像进行图像预处理。在此简单讲述在图像像素相加过程的认识。图形像素相加的是对图像的一种简单的降噪过程。其次,我们知道一幅图像在数学计算过程中,其实就是一个二维矩阵,那么图像的像素相加也就是各个对应点的求和。这就要求我们求加的两幅图像的维度必须相同,行和列必须对应相等,否则无法继续,首先我是使用opencv 自带的函数API进行求解,然后通过数学的方式...
MFC学习第一天(初识界面) 学以致用,不用无功啊。因项目需要,MFC速成学习,所需功能并不复杂,之前也集中学过MFC开发,不过没有上过项目,几个月时间不碰,略显尴尬。目前又要重操,无奈写写博客,俗话说好记性不如烂笔头嘛,菜鸟见解,不当之处望指出。系统:win10 64位、visual studio 2013一、构建工程 打开VS新建项目,选择MFC应用程序,然后下一步,选择基...
关于链表头指针和头节点的理解 通常在创建一个链表时,在链表的头部额外增加一个只包含指针部分不包含任何数据信息的结点(空结点),这个结点称为头结点。此时头结点的指针域指向第一个结点。该节点称为有用节点。实际上是物理意义上的第二个结点(首元结点)。头结点是概念上的第一结点。可以简单粗暴的认为,头指针一定是指向该链表的第一个指针,无论有没有头结点,头指针一定是指向第一结点。头节点不一定存在于一个链表中,但是一个链表一定...
stm32 cubemx 配置普通定时器功能 在之前的32单片的项目开发中,对于程序模块的使用和配置,主要借助于各个开发套件的demo,在此基础上进行相关的修改,往往对于较为复杂的设计,可能设计较为详细的寄存器设置,容易出错,而且移植也相对较为麻烦。cubemx以一种可视化的模块配置,配置简单,一目了然,给人很清新的感觉,极大的方便开发人员的工作。以下是我在初次使用该软件对定时器的配置思路,希望能对学习着起到一定的参考作用。这...
modbus协议-01 modbus协议是工业上常用的一种通信协议,特别是在要求一个系统与多个从机系统进行数据通信时,使用modbus协议特别的方便。在之前的项目经历中,做了一个主控系统,带动两扇屏蔽门驱动系统的主从控制。关于对于modbus的使用做个简要总结 。在Modbus协议中理论上可以有0到255个功能码,实际上常用的也就那么几个。0x01: 读线圈寄存器 线圈寄...