- 博客(33)
- 收藏
- 关注
原创 C++ 函数指针和回调函数
在实际业务中,函数的目的就是为了把某些功能封装起来。如果某业务中大部分的功能都已经确定,我们可以把已经确定功能的代码实现,但是某些个性化的部分必须根据业务场景实现。对于这种个性化的业务,需要封装成不同的函数。在调用的时候把函数地址作为参数传入函数。函数的二进制代码存放在内存四区中的代码段,函数的地址是它在内存中的起始地址。如果把A函数的地址作为参数传递给B函数,就可以在B函数种灵活的调用A函数。声明函数指针时,必须提供函数类型。函数类型包括返回值及参数列表,与函数名和形参名无关。使用函数指针的三个步骤。
2023-03-15 10:43:22
188
原创 图像的透视变换
透视变换时按照物体成像投影规律进行变换,即将透视物体重新投影到新的成像平面。在透视变换中,透视前的图像和透视后的图像之间的变换关系可以用一个3✖3的矩阵表示,该矩阵可以通过两幅图像中4个对应点的坐标求取,因此透视变换又称作“四点变换”。
2021-06-20 15:46:49
1012
原创 Qt 中的线程池
QThreadPool获取线程中最大线程个数maxThreadCount : int获取全局线程池对象[static] QThreadPool *QThreadPool::globalInstance()开始void QThreadPool::start(QRunnable *runnable, int priority = 0)QRunnable:放入线程池里的类型priority:优先级,有默认设置最大线程数void setMaxThreadCount(int maxThr
2021-05-31 09:26:50
844
原创 day01 线程类
多线程在进行桌面应用程序开发的时候,假设应用程序在某些情况下需要处理比较复杂的逻辑,如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作,这种情况就要使用多线程。其中一个线程处理窗口事件,另一个线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验还可以提高执行效率。在qt中使用了多线程,有些事项是需要注意的:默认的线程在qt中称之为窗口线程也叫主线程,负责窗口事件的处理或者窗口控件数据的更新子线程负责后台业务逻辑处理,子线程中不能对窗口对象做任何操作,这些事情需要交给窗口线程处理
2021-05-30 14:56:17
152
原创 Qt TCP 网络通信02
通信流程服务器端通信流程创建套接字服务器QTcpServer对象通过TcpServer对象设置监听,即QTcpServer::listen()基于QTcpServer::newConection()信号检测是否有新的客户端连接如果有新的客户端连接调用QTcpSocket *QTcpServer::nextPendingConnection()得到套接字对象是哪个通信的套接字对象QTcpSocket和客户端进行通信客户端通信流程创建通信套接字类QTcpSocket对象使用服务器绑定
2021-05-29 10:41:30
128
原创 Qt TCP 网络通信01
概念windows 和 Linux 套接字相似局域网和广域网局域网:将一定区域内各种计算机,外部通信设备和数据库连接起来形成计算机通信的私有网络广域网:又称广域网、外网、公网。是连接不同地区局域网或城域网的远程公共网络TCP/UDP区别TCPUDP建立连接三次握手无断开连接四次挥手无数据校验数据丢失自动重传无传输协议流式报文传输完成断开连接关闭套接字流式传输协议:发送端接收端处理数据可以不均等。可以分次接收
2021-05-24 23:34:41
1510
原创 图像二值化
顾名思义图像中只有两种颜色的信息,通常是黑色和白色。是将普通图像二值化后得到的图像图像二值化的作用是为了方便提取图像中的信息。二值图像在进行计算机识别时可以增加识别效率
2021-04-15 16:48:50
2151
原创 回文数
9. 回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例输入:x = 121输出:true思路求出 x 的位数serval = log10(x) + 1遍历 x 的前 serval / 2 位,从右到左输出一个数 num,x不断除10如果 serval 为奇数,x 再 除 10return x == num代码class Sol
2021-04-14 18:02:35
148
原创 两个像素运算规则
两个像素运算规则bitwise_not()void cv::bitwise_not(Input src, OutputArray dst, InputArray mask = noArray())bitwise_and()void cv::bitwise_and({InputArray src1, InputArray src2,
2021-04-13 18:22:02
244
原创 整数反转
7. 整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例输入:x = 123输出:321题解分析遍历 x,直到x/10 == 0。用长整型存储得到的x取余。最后长整型转为int型,看值是否相等。代码展示class Solution {public: int reverse(int x) {
2021-04-11 18:23:26
89
原创 图像颜色空间变换
图像颜色空间变换RGB颜色模型空间立体模式,三个通道叠加,形成颜色第一个通道是蓝色 B 分量 blue第二个通道是绿色 G 分量 green第三个通道是红色 R 分量 red三种存储图像空间8U 0-255f 32F 0-1 映射为 0-255 强制类型转换 当 <0 时,全部为黑色,当>0 时全部为黑色d 64F 0-1图像数据类型的转换converTo()void cv::Mat::converTo(OutputArray m,
2021-04-11 16:57:35
356
原创 无重复最长子串
无重复的最长字串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解题分析暴力枚举法。外循环遍历输入字符串,内循环查找最长子串,设定变量保存子串长度代码展示class Solution {public: int lengthOfLongestSubstring(string s) { string s1 = "";
2021-04-01 20:30:18
118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人