自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 根据dll文件生成lib

例如,Qt Msvc2019编译的dll和lib给msvc201不能调用,因为lib文件不同,需要重新生成lib,或者更改加载dll的方式,即不用lib加载。其中test.def为def文件名,test.lib为生成的lib文件名,应该把test.lib该为fBodyImgprocessingLib.lib。不同版本的vs编译的dll在导出类的时候不能相互调用,直接导出函数是可以的,但有的也存在问题。第二步, 在该路径下新建def文件(新建txt,该后缀为def即可)第一步,更换目录 cd \DIR。

2023-05-17 15:32:33 1431

原创 凸包计算及连通区最小外接矩形计算

计算凸包,并利用凸包计算该连通区的最小外接矩形

2023-03-21 00:05:53 746

原创 Qt中radioButton使用

关于Qt radioButton的使用

2022-06-01 10:31:09 6281 2

原创 Qt中QImage用于16位图像的显示,QImage数据对齐

Qt中QImage用于16位图像的显示,QImage数据对齐之前总结过QImage类,https://blog.csdn.net/weixin_43294620/article/details/122419099?spm=1001.2014.3001.5501但是对于16位图像的显示没有详细说明,Qt也支持16位的图像,例如QImage::Format_Grayscale16、QImage::Format_RGBX64,以上两种格式分别是Qt5.13和5.12版本引入的,现在分别对以上两种图像进行分析,

2022-04-07 16:31:13 7096 2

原创 Stack overflow 错误 栈溢出的原因及解决办法(vs2017 && Qt)

Stack overflow 错误 栈溢出的原因及解决办法(vs2017 && Qt)在处理图像的时候发生了如下错误:0x00007FF7B0556FF8 处有未经处理的异常(在 Open_SIM.exe 中): 0xC00000FD: Stack overflow (参数: 0x0000000000000001, 0x00000031C87A3000)。同样的,类似的错误也可以是在Qt中发生:The inferior stopped because it triggered a

2022-03-31 13:22:28 8825 3

原创 Qt加载动态链接库

Qt加载动态链接库1、 直接在pro文件中添加首先将.a(或者.lib)和.dll文件放入某一目录中,一般是放入程序目录下,例如在程序目录下放入了mydll.lab和mydll.dll文件,然后在.pro文件中添加:LIBS += -L$$PWD/./ -lmydll有的文章说mingw平台使用.a和.dll文件,msvc使用.lib和.dll,实测在mingw下使用.lib和.dll无任何问题以上参数说明-L"文件路径" -l"导入库文件名(不加扩展名)"上述$$PWD指的是当前目录

2022-03-22 14:25:29 8690

原创 Qt使用boost

Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。https://www.boost.org/上下载最新的boost,注意别下载beta版本然后解压到指定路径例如:D:\Qt\boost_1_78_0然后只需要在Qt的pro文件中加入INCLUDEPATH+= D:\Qt\boost_1_78_0就可以使用boost库了...

2022-03-18 19:32:50 989 1

原创 使用LoadLibrary显式加载动态链接库以及所需要注意的编码问题(涉及宽字符窄字符)

关于LoadLibrary、宽字符、窄字符以及编码方式

2022-03-17 18:55:09 11457 1

原创 函数参数类型及选择

函数参数类型及选择函数参数类型主要有:值、地址、引用在main函数中调用其他函数时,会在栈里开辟一个空间,最开始入栈的是当前代码的下一行代码的地址,然后依次是形参、函数的局部变量、函数的代码段,当函数返回时,释放栈空间,最后出栈的是下一行代码的地址,又回到了main函数里函数开始的地方继续执行。但是为什么栈里的变量释放了,函数还能返回呢,这是因为编译器会生成一个临时变量用来存放函数的返回值。1、值传递先看一段代码:#include <iostream>using namespace

2022-02-11 10:40:03 1656

原创 const关键字

const关键字经常会在程序中看到const关键字,const是constant的缩写,意为不变。const在C++中可以用来修饰内置类型变量、自定义对象、成员函数、返回值、函数参数1、const修饰普通类型变量const int x = 7;int y = x; //正确定义并赋值x = 5; //错误,x为const类型,即常量,不允许修改x**2、const修饰指针变量 ** (左定值,右定向)①const修饰指针指向的内容,则内容不可变。即让指针指向一个常量对象,这样可

2022-02-07 19:25:20 656

原创 类模板template <class T>

类模板template <class T>类模板:类模板是对一批仅仅成员数据类型不同的类的抽象,使用类模板可以极大地提高编程的效率。例如对于以下这个类:typedef unsigned long Item;class Stack{private: enum {MAX=10};//作用域内枚举,这里使用枚举的MAX只是一个符号名称,在作用域为整个类的代码中遇到时,将用10来代替 //注意在此处使用const int MAX = 10;是不行的,因为声明类只是描述了对象的形式,并没有创建对

2022-02-07 16:47:42 5797

原创 C++预处理命令,包含宏定义、文件包含、条件编译等

C++ #if #endif #define #ifdef #ifndef #if defined #if !defined详解先了解一下 预处理命令:在编译之前进行得处理,C语言得预处理主要有三个方面得内容:1.宏定义;2.文件包含;3.条件编译。预处理命令是以“#”符号开头的。常见符号意义#if //编译预处理中的条件命令,相当于C++中的if语句#define //定义一个预处理宏#undef //取消宏定义#i

2022-02-07 13:43:19 1190

原创 C++指针:(包括二维数组、二级指针、动态二维数组内存连续)

C++指针:(包括二维数组、二级指针、动态二维数组内存连续)在C++数组的创建及使用中,简单介绍了数组中指针的使用,但是还有一些其他问题,这里主要展开一些关于二维数组指针、二级指针以及实现动态二维数组的内存连续。1、任何指针变量被创建时不会自动成为NULL指针,它的默认值是随机的,它会乱指一气。因此如果在短期不用的话,就先把指针赋值为NULL,例如:int * p = null;2、以内存需求的角度来看,不同类型的指针没有什么不同,其所占空间与操作系统有关(32位操作系统指针占用4字节,64位系统指针

2022-01-26 15:52:40 2654 1

原创 位运算(包括OR,AND,XOR,NOR,NAND,XNOR,以及&0xFF等常见应用)

位运算(包括OR,AND,XOR,NOR,NAND,XNOR,以及&0xFF等常见应用)位运算是C语言的重要特点,是其他计算机高级语言所没有的,位运算是以二进制为对象的运算,二进制表示法与计算机内存完全对应,每个单元(位)都可以设置成开(1)或关(0)。而且位运算比正常的运算符速度要快很多,因为位运算是一种底层的运算,但是理解起来会偏难一些。其他补充:1、位运算符中除~外,均为耳目运算符2、运算只能是整型或者字符型的数据,不然会报错常见的位运算符符号描述运算规则&a

2022-01-26 14:05:54 9486 2

原创 Qt中的隐式共享机制(implicit sharing)

Qt中的隐式共享机制(implicit sharing)隐式共享在使用Qt容器类的时候会可能用到隐式共享机制(implicit sharing),隐式共享又叫做回写复制**(copy on write)**。当两个对象共享同一份数据(通过浅拷贝实现数据块的共享)时,如果数据不改变,则不进行数据的复制。而当某个对象需要改变数据时,则进行深拷贝。程序在处理共享对象时,使用深拷贝和浅拷贝这两种方法复制对象, 而深拷贝要占用更多的内存和CPU资源,隐式共享可以降低对内存和CPU资源的使用率,提高程序的运行效率。

2022-01-12 19:51:11 865

原创 Vector 容器类整理

Vector 容器类一、Vector简介Vector(向量)是一个能够存放任意类型的动态数组,能够增加和压缩数据。二、Vector容器特性1、顺序序列顺序容器中的元素按照严格的线性顺序排列。可以通过元素在序列中的位置访问对应的元素,即通过下标访问。2、动态数组支持对序列中的任意元素进行快速直接查询,甚至可以通过指针算数进行该操作,提供了在序列末尾相对快速地添加/删除元素的操作。类似于栈一样,只能在最后进行添加删除操作,当我们不知道自己所需的数组大小时,可以用Vector以节约空间。vector

2022-01-12 19:46:22 503 1

原创 QImage类详解(QImage类型转换、QImage类函数及QImage像素操作)

QImage类(QImage类型转换、QImage类函数及QImage像素操作)打开Qt帮助文档,会看到有关于QImage的描述如下:The QImage class provides a hardware-independent image representation that allows direct access to the pixel data, and can be used as a paint device。即QImage类是设备无关的图像,可以进行像素级操作,也可以被用作绘图设备,因

2022-01-10 20:55:55 29428 9

原创 Qt中QRgb与QColor的区别及使用

Qt中QRgb与QColor的区别及使用1、QRgb:QRgb的官方文档如下:An ARGB quadruplet on the format #AARRGGBB, equivalent to an unsigned int.The type also holds a value for the alpha-channel. The default alpha channel is ff, i.e opaque. For more information, see the Alpha-Blended

2022-01-10 16:18:43 5104

原创 吴恩达机器学习笔记三(Machine learning algorithms--Cost function)

Cost functionWe need to remember this:1、Understand the cost functionIn order to simplify:Use hθ(x)=θ1xh_\theta(x)=\theta_1xhθ​(x)=θ1​xEach value of theta one corresponds to a different hypothesis(不同的θ1\theta_1θ1​对应不同的假设函数) .And for each value of thet

2022-01-09 19:27:56 545

原创 吴恩达机器学习笔记二(Machine learning algorithms--Linear regression)

Linear regressionFor example:We’re going to use a data set of housing prices from the city of Portland, Oregon. And I’m gonna plot my data set of a number of houses that were different sizes that were sold for a range of different prices. Based on the d

2022-01-06 20:57:52 784

原创 Qt 双缓冲绘图

Qt 双缓冲绘图Qt绘图主要是基于QPainter、QPaintDevice和QPaintEngine这三个类。QPainter(画家类)用来完成具体的绘制操作,QPainter可以在继承自QPainterDevice类的任何对象上进行绘制操作。QPainter一般在一个部件重绘事件(painterEvent())中绘制,首先需要创建QPainter对象,再进行图形的绘制,最后销毁QPainter对象。一般绘图:先看一个画矩形的例子:(新建一个Qt项目,widget就行)/*widget.h */

2022-01-06 16:14:20 3479 10

原创 吴恩达机器学习笔记一(Machine learning algorithms)

Machine learning algorithms(纯粹促进自己学习整理)1. Machine learning algorithms:Main two types:Supervised learning 监督学习In supervised learning, the idea is that we’re going to teach the computer how to do something.Unsupervised learning 无监督学习In unsupervised

2021-12-29 19:37:49 715

原创 Mat数据类型及访问

Mat数据类型及访问Mat数据类型:CV_[位数][带符号与否][类型前缀]C[通道数]例如:CV_8UC3 表示使用8位的unsigned char类型,每个像素由三个元素组成三通道。常见的数据类型如下:在访使用at访问时,应注意<>中的数据类型相对应例如:Mat I(imgHeight, imgWidth, CV_32F); //CV_32F即 CV_32FC1 for (int i = 0; i < imgHeight; i++){ for (int j

2021-12-29 14:53:07 1633

原创 高斯滤波及其原理

高斯滤波及其原理一、高斯函数的基础1.1 期望、方差与标准差用来刻画随机变量某一方面特征的常数被称为随机变量的数字特征,其常用的有:数学期望:​ 在概率论和统计学中,数学期望(mean)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。​ 需要注意的是,期望值并不一定等同于常识中的“期望”——“期望值”也许与每一个结果都不相等。期望值是该变量输出值的平均数。期望值并不一定包含于变量的输出值集合里。大数定律表明,随着重复次数接近无穷大,数值的算术

2021-12-14 18:03:07 23645 3

原创 C++数组的创建及使用(静态数组与动态数组)

C++数组的创建及使用一、静态数组静态数组:定义时就已经在栈**上分配了空间大小,在运行时这个大小不能改变数组(array)是一种数据格式,能够存储多个同类型的值。一维数组1、一维数组的声明:一般声明:typeName arrayName[arraysize];要创建数组,可使用声明语句。数组的声明应该指出数组的①存储在每个元素中的值的类型②数组名③数组中的元素数注意:以上声明语句中的arraysize不能是变量,另外数组大小一旦确定之后就不能修改了!例如:short month[1

2021-12-14 14:02:30 35034 1

原创 Hough变换检测直线的原理

霍夫变换(Hough Transfrom)于1962年首先由PaulHough提出,最开始是用来在图像中过检测直线的,后来扩展到检测圆、曲线等。 先来看看在图像空间(直角坐标系)下的直线方程:y=kx+b,也就相当于知道斜率k和截距b就可以唯一的确定一条直线。而将这个(k,b)映射到参数空间中就可通过一个点确定直角坐标系下的一条直线,即参数空间中的每一点都对应着直角坐标系下的唯一一条确定的直线。反过来也可以描述成在图像空间中的任一像素点p,对应于参数空间中有无数个点(因为过该像素点的直线有无数条),如图.

2021-11-30 16:37:24 5110 1

原创 如何用PS选择图像中的印章

使用PS抠图—选择印章话不多说直接上图选择魔棒工具点选一部分选取相似完结

2020-07-27 17:56:26 978

空空如也

空空如也

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

TA关注的人

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