- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 python 进程和线程
在 Python 中,进程和线程都是实现并发执行任务的机制,但它们在实现方式、资源使用和适用场景上有很大的不同。•绕过 GIL:每个进程有自己的 Python 解释器实例和 GIL,因此可以在多核 CPU 上并行执行 CPU 密集型任务。•CPU 密集型任务:优先选择多进程,因为多进程可以绕过 GIL,在多核 CPU 上实现真正的并行处理。•需要隔离的任务:由于每个进程有独立的内存空间,适合需要隔离的应用,避免内存泄漏等问题。•共享内存:线程之间共享同一个进程的内存空间,因此可以直接访问进程中的数据。
2024-10-09 11:29:49
417
2
原创 记录yolov8_obb训练自己的数据集
1.标注软件:roLabelImg是基于labelImg改进的,是用来标注为VOC格式的数据,但是在labelImg的基础上增加了能够使标注的框进行旋转的功能。2.数据格式转换2.1 xml转txtdota数据格式:937.0 913.0 921.0 912.0 923.0 874.0 940.0 875.0 small-vehicle 0yolo_obb格式:class_index, x1, y1, x2, y2, x3, y3, x4, y4。
2024-01-23 16:06:46
2472
8
原创 记录-YOLOv8训练自己的数据集
安装labelimg标注工具启动labelimglabelImg调整模式,变成PascalVOC进行标注label快捷键。
2024-01-11 15:13:53
617
原创 CUDA 优化remap函数
OpenCV函数的CUDA优化是为了利用NVIDIA GPU的并行计算能力来提高算法的运行速度和性能。在CPU上使用OpenCV时,每个像素的操作都需要独立计算,而在GPU上,可以将像素分配给不同的线程块,并同时执行这些操作,从而显著加快算法的处理速度。此外,由于GPU具有更多的内存带宽和更快的访问速度,因此对于一些需要大量数据处理的任务,CUDA优化可以进一步提高OpenCV函数的效率。的文件中,并编译为静态库。接下来,我们创建一个名为。在这个文件中,我们使用。
2023-03-23 14:31:37
1527
原创 数学-几何
点到直线的垂足Point1 GetFootOfPerpendicular(const Point1 &pt, const Point1 &begin, const Point1 &end){ Point1 retVal; double dx = begin.x - end.x; double dy = begin.y - end.y; double dz = begin.z - en
2017-06-25 22:17:02
1320
原创 图像序列合成视频(vs2013+opencv)
#include#includeusing namespace std;using namespace cv;int main(){ CvVideoWriter *writer = 0; int isColor = 1; int fps = 30; int frameW = 640; int frameH = 480; writer = cvCreateVideo
2017-06-25 15:51:41
1731
原创 图像序列合成视频(matlab)
图像序列合成AVI视频clc;clear all;close all;pic=dir('C:\Users\Administrator\Desktop\camera\data');% 图像序列路径WriterObj=VideoWriter('xxx.avi', 'Uncompressed AVI');% xxx.avi表示待合成的视频open(WriterObj);for i=3:
2016-06-30 22:12:35
4399
原创 VS2013创建并使用DLL
1.DLL文件DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被
2016-06-29 21:48:32
9473
原创 c++实现Face++ API的调用
1.Face++ APIFace++提供人脸相关技术的在线API服务给开发者使用,API 地址:http://www.faceplusplus.com.cn/。在使用Face++的在线API之前,肯定是要进行开发者注册申请的,申请完以后Face++会给开发者提供一个API Key和Secret Key,在后期的服务器通信时会用到两个Key。2.调用说明以Face++人脸检测为例,输
2016-06-12 21:06:02
8272
1
原创 C++实现图片的base64编码
1.base64编码的原因网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了。最好的方法就是在不改变传统协议的情 况下,做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表示,问题就解决了。Base64编码应运而生,Bas
2016-06-11 20:29:33
20395
6
原创 vs2013编译libcurl 7.49.1
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当
2016-06-07 21:31:39
5504
原创 C++中vector的使用
vector是C++标准模板库中的容器,能够操作多种数据结构。1.头文件#include vector属于std命名域2.创建vector对象vector ivec;3.基本操作(1)尾部插入数字:ivec.push_back(ivec);(2)使用下标访问元素,coutivec[0](3)使用迭代器访问元素vectorint>::ite
2016-05-24 21:09:15
516
原创 C++中map的使用
map是关联式容器,它是模板类。关联的本质在于元素的值与某个特定的键相关联,关键字起到索引的作用,值则表示与索引相关联的数据。它的特点是增加和删除节点对迭代器的影响很小,除了操作节点,对其他的节点都没有什么影响。对于迭代器来说,不可以修改键值,只能修改其对应的实值。1.头文件 #include 2.map定义std:map student;std:map scor
2016-05-23 21:00:35
559
原创 C++中JSON文件的读取
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网
2016-05-18 21:31:46
7188
原创 opencv中批量读取图片并保存
在生成训练集的时通常需要对文件夹中图片进行批处理,本文简要介绍图像批量读取、处理、保存的方法。1.首先生成图片描述文件
2016-05-12 21:13:12
30344
2
原创 vs2013配置opencv2.4.8
1.下载和安装opencv2.4.8首先安装vs2013,其次下载opencv2.4.8并双击解压到指定路径下(如:D:\Program Files)。解压后opencv目录下有两个文件夹(build,source)。build里面是使用OpenCV相关的文件;sources文件夹里是官方示例集。如果要查看完整的源代码需要用cmake来“解包”。2.配置环境变量配置方法如下:计
2016-05-08 18:54:42
807
原创 VS中添加lib及头文件步骤
在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。 2、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。 然后添加工程引用的lib文件名:工
2016-04-28 15:35:52
3800
原创 opencv-随机数
1.OpenCV中的随机数生成类RNG,其定义在core.hpp中。class CV_EXPORTS RNG{public: enum { UNIFORM=0, NORMAL=1 }; RNG(); RNG(uint64 state); //! updates the state and returns the next 32-bit unsigned i
2016-04-26 15:54:49
608
原创 KNN学习笔记
KNN学习(K-Nearest Neighbors, KNN)是一种统计分类器,属于惰性学习,对包容型数据的特征变量筛选尤其有效。1.基本原理输入没有标签即未经分类的新数据,首先提取新数据的特征并与测试集中的每一个数据特征进行比较;然后从样本中提取k个最邻近(最相似)数据特征的分类标签,统计这k个最邻近数据中出现次数最多的分类,将其作为新数据的类别。分类:KNN按照一定规则将相似的数据
2016-04-26 10:28:14
466
原创 K-means 学习笔记
1.基本原理 K-means(K均值)是基于数据划分的无监督聚类算法,是数据挖掘领域的十大算法之一。 聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动分类。聚类算法可以分为基于划分的方法、基于连通性的方法、基于密度的方法、基于概率分布模型的方法等,K-means属于基于划分的聚类方法。算法步骤一般如下
2016-04-18 09:40:48
601
原创 T图像处理简介
1.图像滤波 高斯滤波——一种线性平滑滤波,适用于消除高斯噪声(导爆管图像)。 均值滤波——以图像模糊为代价来消除噪声。 中值滤波——非线性滤波方法,可克服对图像细节的模糊,且对滤除脉冲干扰及图像扫描噪声非常有效。其基本思想 是利用该像素一定邻域内像素点的中值来代替该像素点的值。 K最近邻滤波。 低
2016-04-14 22:19:55
824
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人