自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习opencv

三年前接触过opencv,但一直停留在调用api的阶段,对图像处理的原理没有一定的深入,今天开始想真正深入一下opencv,先写一下自己的疑惑,就当笔记了。

2024-05-13 13:16:43 176

原创 Qt宏和关键字

【代码】Qt宏和关键字。

2024-05-08 14:09:38 339

原创 Q_DECLARE_PRIVATE宏

相信大家在看源码的时候一定碰到过这个宏,它的用法inlined_funcreturn;;一般是在类的私有部分然后用宏去包含这个类,这样的话就有一个d_ptr指针就指向了这个QPianter类,这个d_ptr指针就可以操作QPainter的成员变量以及成员函数了。

2024-05-08 13:26:57 304

原创 QT_BEGIN_NAMESPACE

最近碰到了QT_BEGIN_NAMESPACE这个宏,这个宏就是一个命名空间,意思是如果不用这个宏,可能我qwidget定义的一个变量a会和标准C++定义的变量a冲突对不,

2024-05-08 09:37:44 333

原创 libmodbus使用

然后编译,一个是头文件路径,一个是动态库路径,我在编译完后,移植到arm开发板上遇到一个问题/dev/ttyUSB3找不到了,就是串口直接都不见了,最后拔电重启一下就好了,接着配置modbus-slave。它的安装可以,但是编译测试看不太懂,我没跟着它的编译,完了后把/lib下的。执行成功如下,读取出了保持寄存器的值。放到开发板的/usr/lib下。

2024-05-05 16:13:04 317

原创 qt-vtk工具

易于使用的接口:VTK提供了多种编程接口,包括C++、Python和Java等,使得用户可以根据自己的偏好选择合适的接口进行开发。丰富的功能:VTK提供了各种功能,包括体绘制、体数据可视化、体数据处理、曲面重建、几何变换、体积渲染等。广泛的应用领域:VTK被广泛应用于科学计算、医学图像处理、地质学、气象学、流体动力学、机械工程等领域。多种数据类型支持:VTK支持多种类型的数据,包括结构化网格、非结构化网格、点云、图像等。这款工具入门容易,非常适合新手学习vtk使用。

2024-04-17 22:42:28 276

原创 嵌入式Linux串口通信

显示出所有的串口,这些串口能够使用的前提是你必须连接好硬件,我刚开分配了一个RS232串口用作调试,用SecureCRT上连接了网口和RS232的串口用作终端连接开发板,以为这样就可以实现开发板给XCOM串口软件发送消息,我还试着以为用在PC端口使用vspd虚拟两个端口,一个com1,一个com2,然后理所当然认为com2映射到了ttyUSB2,但是这样是错误的,因为你硬件连接的都不对,这一点困扰了我很久,

2024-04-17 20:08:22 264

原创 Qt日志使用

这个QsLog日志不支持追加功能好像,但是可以设置日志大小以及可以备份几个之前的日志个数,就是假如你项目运行完一次就是有一个新日志,其实这样也合理着,每执行一次程序就只有一次日志。这篇讲qt的日志还是比较好的,可以在自己的函数里面配置这个日志框架实现自己所需的功能。

2024-04-16 13:53:29 569

原创 配置文件替换的接口

实现一个配置文件被另一个配置文件替换内容的功能。

2024-04-08 11:06:47 97

原创 C语言结构体的再认识

结构体内部有了像类一样的构造函数,不仅有有参构造函数还有无参构造函数,这样也是可以的,struct定义的变量不像class类一样是私有的,它定义的变量是公开的,一般我们结合默认构造函数以及构造函数一块使用,这样简化了编程模型。以前对结构体的了解感觉还是很浅,在做项目的时候突然有时候有一种顿悟的感觉,原来结构体就像一位曾经的故人,只是我没明白他的苦心。

2024-04-02 10:26:06 194

原创 QSplashScreen

以前打红警的时候进入游戏界面会有一个启动界面,比如美国是有伞兵,英国有狙击手,韩国有黑鹰战机的一些介绍,这些就是启动界面,就是由QSplashScreen这个类来实现的。

2024-03-29 16:10:38 301

原创 构造函数初始化列表使用

在这个里pixmap并没有赋值给任何成员变量,而是赋值给了基类的构造函数,在这种情况下,pixmap 参数的作用是传递给基类构造函数,以便在 QSplashScreen 对象被创建时使用。初始化列表: width(w), height(h), area(w * h)在构造函数的开始处使用,它按照成员变量的声明顺序来初始化它们。构造函数Rectangle(int w, int h)接受两个参数:w和h。width和height分别用传入构造函数的w和h来初始化。

2024-03-29 15:42:10 287

原创 C++中的类型转换

在C++编程语言中,强制类型转换(也称为类型转换运算符)是一种在不同数据类型之间转换值的机制。这种转换可以是隐式的,也就是说由编译器自动进行,或者是显式的,即程序员明确指定进行转换。

2024-03-29 10:29:51 674

原创 windows编程里HANDLE作用

即使文件系统进行了一些优化操作,比如移动文件以优化存储空间,句柄仍然有效,因为它指向的是文件的内核对象表示,而不是文件的物理位置。操作系统负责跟踪文件的实际位置,并确保所有的句柄都能正确地访问到文件数据。获得一个文件句柄时,操作系统会为您管理这个文件资源,确保可以通过这个句柄与文件进行交互,无论文件在磁盘上的实际位置如何变化。在这个例子中,CreateFile 函数尝试打开名为 “example.txt” 的文件,并将文件的句柄赋值给。句柄实际上是一个指向内核对象的指针,而不是文件在文件系统中的物理地址。

2024-03-28 14:29:11 285

原创 Q_STATIC_ASSERT_X作用

今天在浏览Qt信号与槽源码的时候看到了Q_STATIC_ASSERT_X 这个宏定义,下面来举例分析一下。第一个Q_STATIC_ASSERT_X是用来检查信号所属的类中是否有 Q_OBJECT 宏。Q_OBJECT 是必需的,因为它启用了 Qt 的元对象系统,包括信号和槽机制。如果信号所在的类没有 Q_OBJECT,编译器将无法处理信号和槽,所以这个断言会失败,导致编译错误;这个断言确保信号的参数数量至少与槽的参数数量一样多。如果槽需要的参数比信号提供的多,那么连接将失败,因为信号无法提供足够的参数给槽。

2024-03-27 10:56:18 291

原创 Qt散文一

Qt的事件分为普通事件和系统事件,普通事件比如用户按下键盘,系统事件比如定时器事件。事件循环的开始是从main函数的QApplication,然后调用exec()开始的,在执行exec()函数之后,程序将进入事件循环来监听应用程序的事件。当事件发生时,Qt 将创建一个事件对象。Qt 中所有事件类都继承于QEvent。在事件对象创建完毕后,Qt 将这个事件对象传递给QObject的event()函数。event()函数并不直接处理事件,而是按照事件对象的类型分派给特定的事件处理函数(event handle

2024-03-15 09:32:37 534

原创 opencv实现图像的融合

然后我以彩色方式读取1.png,以灰度图方式读取3.png这张图片,并且用两个窗口独立地去显示(我后来发现不能把灰度图和彩色图相融合)实现图像的融合并且输出一张jpg格式的照片。通过这个可以实现图片保存到当前项目文件夹下。先显示一个彩色图的照片。

2024-03-03 20:31:28 580 1

原创 opencv生成一张图片

这个creatrAlphaMat函数参数是一个Mat对象的引用,这个函数用来填充一个OpenCV的Mat对象,使其成为一个带有Alpha通道的彩色图像。具体来说,它通过遍历图像的每一个像素,并根据像素的位置动态设置其RGBA(红、绿、蓝和Alpha)值来实现这一点。rgba的前三个元素就是设置红、绿、蓝三通道的值,最后一个元素用来设置照片的透明度。,这个compression_params主要是压缩参数,加上这个后可以对图像进行压缩,并且给用户更多的控制权。试过去掉这个也可以生成图像。

2024-03-03 19:51:26 586 1

原创 opencv VideoCapture

waitKey函数的作用不仅是等待指定的时间,还可以处理键盘输入事件,确保图像窗口能够正确显示并保持打开状态。因此,保留waitKey函数对于视频播放和显示是非常重要的。videocapture顾名思义视频捕捉,主要是从视频文件、摄像头或网络摄像头获取视频流数据,并将其作为一系列帧进行处理。我们这里主要实现了获取项目文件夹下的1.mp4视频文件,然后经过灰度变化、均值滤波、边缘检测然后将视频显示出来。对了,我尝试了注释waitKey函数,发现注释其后,视频无法播放。

2024-03-01 15:05:37 548

原创 图像模糊均值滤波

均值滤波也叫做平滑滤波,是一种常见的图像平滑滤波方法。其基本思想是用一个滑动窗口在图像上进行平移,对每个窗口内的像素值求平均,然后将该平均值作为当前像素点的输出值。锚点位置(anchor):锚点是指滤波核的参考点,用来确定核在图像上进行卷积操作时的对齐方式。边缘填充方式(borderType):在进行图像卷积时,当核在图像边缘区域进行操作时,需要对超出图像边界的像素进行填充。blur函数的参数主要是原图像、目标图像、原子核大小、锚点位置、边缘填充方式。BORDER_WRAP:用另一侧的边界像素填充。

2024-02-28 11:00:25 345

原创 opencv图像腐蚀

1 getStructuringElement用来获取结构元素的函数,结构元素就像是一种小小的形状模板,用于在图像处理中执行各种操作。这个小形状可以被放置在图像上,然后根据它的形状和大小,来改变图像中的像素值。它通过将结构元素应用于图像上的像素来实现。1 为啥#include的时候要包含这么长的头文件,直接包含这个hpp不好吗?我们还可以实现迭代次数的增加,这样图像的边缘更加紧凑(为啥感觉没毛变化)这个涉及的语言讲不好讲还不如看视频,博客,以下的都不错。2 erode常见的参数就是输入,输出,结构元素。

2024-02-27 23:07:16 793

原创 ERROR: In F:\VTK\vtk_src\Common\ExecutionModel\vtkExecutive.cxx, line 782 vtkCompositeDataPipeline (

今天运行项目报错,查了很久发现是读取路径填写错误,导致vtkSTLReader读不到数据,进而报这个错,可以看看自己读取的stl模型问价的路径是否正确着。

2024-02-26 09:54:56 408

原创 Qt RGB三色灯上位机

我是想实现一个颜色选择器界面然后鼠标点击颜色区域就可以发出rgb的值,然后把这个值通过串口线发送给arduion,arduion再解析出数据发送给RGB三色灯。这样通过上位机就可以随意控制灯的颜色了,可以买个灯罩,再画一个PCB加充电电源或者电池,一个自己控制色彩的床头灯就完成了。今天突发奇想做一个Qt RGB三色灯上位机,刚好手上有一个RGB三色灯和arduion开发板。

2024-02-25 11:06:37 921

原创 判断文件夹下文件格式的封装

可以用来判断文件夹下文件夹路径是否存在,文件夹下是否有除png格式外文件,文件夹下png格式文件是否有非数字名。

2024-02-23 16:25:04 327

原创 qt对stl模型显示的封装

因为qt自身带的标题栏显示有点单调,我们这里使用了自定义标题栏。对外只有两个函数,一个是显示一个是指定文件夹下模型路径。

2024-02-20 15:03:27 530

原创 设计usb转ttl模块的一些问题

1 想设计的是一块可以选择3.3V或者5V输出,所以我用了在TTL输出那里加了VCC、VCC3.3V、+5V这几个引脚,然后用跳线帽短接VCC和3.3V就可以实现3.3V,短接VCC和+5V实现5V,这样设计正确吗?2 CH340N可以设计串口自动下载电路吗,我设计的是CH340N的RTS引脚与单片机的RST复位引脚串联,中间接了一个电容,然后用了一个三极管,还有接地,这个我问的不知道对吗,因为想一次实现打板成功。3 这个电路所有地方正确吗,包括以上2个功能。

2024-02-18 20:15:00 523

原创 遇到ubuntu设置交叉编译环境的问题

今天交叉编译器一直没安装成功,环境变量也配置了还是不对,最后发现Ubuntu是64位的要装。

2024-01-31 22:04:13 583

原创 vtk qt切割stl模型

通过滑动slider然后对模型进行某一个方向的面切割。同时可以用鼠标对模型进行移动缩放,旋转等操作。然后可以加一些颜色点云显示等操作。一直想实现对stl模型的某个方向进行平面切割。

2024-01-15 19:00:00 513

原创 Arduion Modbus通讯示例

一定记得串口参数必须设置对,然后从站地址,以及起始读几个从哪里开始要设置对,比如我只操作3个寄存器那就从0-3,不然一直读不到数据。然后上位机这边就是用2个按钮修改寄存器的值,两个lcd-number和一个label显示寄存器 的值。实现了Arduion和Qt上位机利用Modbus协议采集DHT11数据,以及开关LED灯。用modbus-poll当上位机的时候总是读不到数据。虽然简单,但是很有意义。

2024-01-07 14:20:14 666

原创 VS2017 CMake编译Opencv

先建立一个opencv_debug和opencv_release文件夹这两个都是为了后续存放编译好的debug版本和release版本opencv的,然后新建一个opencvbuild文件夹存放CMake编译好的VS工程,所以现在一共有5个文件夹了。OPENCV_EXTRA_MODULES_PATH 设置为你自己的路径,就是类似这个D:\OpenCV\opencv_contrib-4.2.0\modules。这个里就有编译好的文件移动到opencv_debug下就好了,test选项 不选。

2024-01-04 20:00:00 532

原创 VTK+QT配置(VS)

然后把这个dll文件从VTK的designer目录复制到qt的对应目录里。中间我遇到了一次ui文件打开就闪退的问题,参考这个。这个博客配置基本环境。

2023-12-25 20:00:00 352

原创 VTK图像创建

【代码】VTK图像创建。

2023-12-22 18:30:00 43

原创 VTK读写数据

png格式图片转jpg。

2023-12-21 21:30:00 52

原创 VTK数据结构

然后在以上基础上给这个数据拓扑结构。只有几何结构没有拓扑结构。

2023-12-21 18:30:00 158

原创 VTK第一个程序

这是看你vtk下opengl是32位才加的,不然运行报错,如果说缺失dll,可以把vtk的dll目录的路径放到环境变量里,就可以了,我用了网上常说的两种办法都没起作用。这个就是第一个程序,不知道为何运行出来鼠标一直转圈。写这个的时候有的得加上。

2023-12-20 21:30:00 46

原创 VTK显示六棱柱

cylinder是六棱柱的数据源,然后cylindermapper把数据源弄成图元,然后vtkactor拿到这个图元道具,接着把这个vtkactor放到场景vtkrender,vtkrender然后渲染场景,vtkrenderwindow将操作系统和与VTK渲染引擎连接到一起,然后就是交互器,提供一些交互的功能。这个就是稍微复杂一点的程序,但是vtk的和qt的图形视图框架十分类似,qt里有视图、图元、场景,而vtk里恰好也有这些。

2023-12-20 21:30:00 51

原创 VTK纹理

【代码】VTK纹理。

2023-12-20 21:15:00 32

原创 VTK相机位置

就是图元从不同视图去看,不同角度去看。

2023-12-20 21:00:00 25

原创 VTK坐标视图

【代码】VTK坐标视图。

2023-12-20 20:30:00 64

原创 VTK光照

其实就是场景里添加光照。

2023-12-20 19:45:00 20

空空如也

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

TA关注的人

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