- 博客(211)
- 资源 (10)
- 问答 (2)
- 收藏
- 关注
原创 windows系统下定时备份数据到远程ftp
最新的web网站老是被开发改出问题,为了能及时恢复,每天要备份下文件,写个批处理加入计划任务,批处理如下@echo offecho 开始更新数据......rem 格式化日期 rem date出来的日期是"2006-02-22 星期三",不能直接拿来使用,所以应该先格式化一下 rem 变成我们想要的。date:~0,4的意思是从0开始截取4个字符 set d=%date:~
2016-10-12 11:12:00 3759
原创 redis下高并发投票设计
最近闲来无事,研究了下redis,看过书籍之后,为了理解的更透彻,就实践写一个例子。先说写投票吧,具体的流程是用户可以发起投票,发起成功后,其他用户可以投票,首页显示话题标题,票数和时间等信息。我使用的redis设计了五个个表一个是文章表,保存话题的相关信息,一个评分表,一个话题被投票评分就增加,一个是时间表,用来后期按时间对话题进行排序,一个是投票表,用的是单ip限制,一个ip一天只能投
2016-10-11 11:06:36 6129
原创 yolov8下的训练指标解析
11:device: 训练运行的设备,默认为None.如果使用GpU训练,可以设定为device=0,使用多个GPU可以设置为device=0,1,2,3,如果没有可用的GPU,可以设定为device=cpu进行训练。box_loss:目标检测任务中的边界框损失,表示模型预测的边界框和真实边界框之间的差异,损失越小,表示模型越能精确的定位物体,通常在0和10之间。cls_loss:目标检测中的分类损失,表示模型预测的物体类别和真实类别之间的差异,损失越小,表示模型越能正确识别物体,通常在0和10之间。
2024-04-23 17:53:04 26
原创 yolov8训练自己数据集报错解决汇总
解决:我们把训练的数据集图片增加到100张以上,重新进行训练,然后进行预测,发现可以识别到物品。这里我们使用了20张图片进行训练,数量太少,模型没有训练的模型不能识别到物品。解决办法:可通过更改ananconda的权限解决,操作如下。2:找到anaconda3的安装目录设置python的权限。解决:这里提示训练的标记数据没找到,我们的目录是这样的。进入Users的权限,将除了特殊权限外,全部挂上√。我这个是这个目录,设置权限,users设置所有权限。1:找到环境所在目录。
2024-04-23 11:49:12 38
原创 yolov8下实现绿萝识别
savetext += "{0} {1} {2} {3} {4}".format(classes_dict[class_], site[0], site[1], site[2], site[3]) # 按格式拼接内容。classes_dict[class_] = len(classes) - 1 # 同时,为此类别标记序号,即第几个类别,从0开始标号。save_txt(labels_p + "/" + name + ".txt", savetext.strip()) # 保存标签文件。
2024-04-22 09:02:39 243
原创 怎么使用yolov8进行图片识别,分类,分割,视频追踪
Ultralytics公司在YOLO之前版本基础上提出了v8版本。这个版本对AI视觉处理有了很大进步,它不但可以做检测,还可以做分类、分割、跟踪,甚至姿态估计。下面我们重点讲解下,使用官方自带的模型进行图片的分类,分割,跟踪等。使用yolo8进行图片处理时,可以使用命令行,也可以借助程序处理,这样拿到数据以后可以方面后续的数据操作。在下面的例子中我们都演示使用程序例子来处理图片。我们以包含电视,桌子,沙发,屏幕等物品的图片为例子来进行处理。通过以上的例子我们可以对模型库已存在的物品进行识别,分类,分割等。
2024-04-22 09:01:27 238
原创 windows下安装yolov8环境(详细图文教程)
最近看了 YOLO 的发展史,发现在机器视觉领域的应用非常广泛,f刚好最近一直在做机器视觉的工作,特此记录下搭建yolov的环境。我们使用的版本是yolov8的就用这个作为演示搭建过程。我们可以把依赖包定义在requirements.txt中,进行批量安装,这样就不用一个一个安装。yolov8的模型训练和使用依赖于pytorch,这个安装时间会比较长。4:安装ultralytics。安装完我们可以在命令行训练模型。直接git clone。3:安装pytorch。二:安装yolov8。
2024-04-11 15:56:32 177
原创 windows下pycharm中配置conda虚拟环境
通过以上以上步骤,我们建立了yolon9虚拟环境,通过命令行的模式安装了opencv-python,但是安装完发现在pycharm的名利命令行终端中执行python脚本提示ModuleNotFoundError: No module named 'cv2',明明已经安装了,为何提示命令找不到呢?3:这里要说明的是conda里的虚拟环境和pycharm的解释器路径需要匹配使用,才可以看到安装的库文件。选择解释器的路径,为刚才创建的环境,软件会自动配置。配置完的环境如下,默认会安装一些包。
2024-04-11 14:16:42 313
原创 opencv对图片更换背景图(底色)
现实工作中,有时需要更换照片的底色,例如证件照,有需要蓝底的,也有需要红底的。if erode[i, j] == 255: # 像素点为255表示的是白色,此处将白色处的像素点替换为红色。if erode[i, j] == 255: # 像素点为255表示的是白色,此处将白色处的像素点替换为红色。2:压缩后的图像需要转为hsv灰度图片,然后将蓝色范围的像素全部变成红色;3:对白色区域进行腐蚀和膨胀操作,主要是去除毛刺和细小的东西;4:循环操作原图,对白色的区域替换为红色。#循环替换白色像素为红色。
2024-04-10 11:43:46 170
原创 thinkphp6中使用监听事件和事件订阅
在项目开发中有很多这样的场景,比如用户注册完了,需要通知到第三方或者发送消息。用户下单了,需要提示给客服等等。这些场景都有一个共同的特点是主流程和通知流程可以完全分离。通知流程是成功和失败不能影响到主流程。那么在thinkphp6中怎么实现这样的逻辑呢?可以使用事件订阅和事件监听。
2024-04-08 11:55:06 781
原创 go中的常用的关键字
上一节中,我们重点介绍了go语言中的for关键字的使用以及重点注意的地方,这一节我们用一篇文章,介绍下常用的关键字以及注意事项。
2024-04-04 17:54:10 580
原创 go的for循环应该这么用
go中的循环有for和for range两种循环结构,for循环结构//Condition;在一个for循环代码块中,InitSimpleStatement(初始化语句)和PostSimpleStatement(步尾语句)两个部分必须均为简单语句,并且PostSimpleStatement不能为一个变量短声明语句。Condition必须为一个结果为布尔值的表达式(它被称为条件表达式)。所有这三个刚提到的部分都是可选的。和很多其它流行语言不同,在Go中上述三部分不能用小括号括在一起。
2024-03-25 11:51:47 537
原创 项目使用kkFileView预览问题
这个流程是文件的文件地址拼上预览服务器地址,app访问的过程中,首先访问预览服务器,预览服务器会解析fullfilename作为文件名,解析拼接的文件地址访问,下载文件到预览服务器,然后返回预览信息给app。这里预览服务器解析我们的文件地址应该是url_decode和base64_decode,那应该是文件地址编码过程中出现了特殊字符,造成解码过程出现问题,因此可能是我们原始文件地址有特殊字符或者在编码过程中会出现特殊字符。这个插件的预览很简单,只需要部署服务使用预览服务地址拼接自己的真实图片地址即可。
2024-03-23 15:58:30 1023
原创 go文件操作看这一篇就够了
user := []User{{"小刘", "技术部", []string{"营销管理", "客服管理"}}, {"小王", "品牌部", []string{"品牌管理", "营销管理"}}}user := User{"小刘", "技术部", []string{"营销管理", "客服管理"}}fmt.Println("文件打开失败", err.Error())fmt.Println("文件打开失败", err.Error())fmt.Println("编码失败", err.Error())
2024-03-20 14:10:07 917
原创 go的数据类型看这一篇就够了
map 是一种特殊的数据结构,一种元素对(pair)的无序集合,pair 对应一个 key(索引)和一个 value(值),所以这个结构也称为关联数组或字典,这是一种能够快速寻找值的理想结构,给定 key,就可以迅速找到对应的 value。数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。结构体是由零个或多个任意类型的值聚合成的实体,每个值都可以称为结构体的成员。
2024-03-11 16:54:36 553
原创 PySide6实现证件照制作程序
要实现证件照制作,需要一个应用窗口,窗口里需要一个选择图片的按钮,选择图片需要展示图片在预览区。file_name, _ = QFileDialog.getOpenFileName(self, "选择图片", "", "Image Files (*.png *.jpg *.jpeg *.bmp)",file_name, _ = QFileDialog.getOpenFileName(self, "选择图片", "", "Image Files (*.png *.jpg *.jpeg *.bmp)",
2024-03-08 16:42:47 42
原创 PySide6实现按键精灵程序
在主窗口开始增加开始记录,结束记录和按键展示区,点击开始记录,调用事件过滤器,记录键盘按键内容到文本文件。print(f"无法打开文件 {self.filename} 进行写入")print(f"无法打开文件 {self.filename} 进行写入")print(f"无法打开文件 {self.filename} 进行写入")self.label.setText(f'按键: {key}')self.label.setText(f'按键: {key}')# 创建 QTextStream 对象用于写入文本。
2024-03-07 17:15:25 72
原创 PySide6进行账单表报统计程序
title_list = {'吃饭':20,'出行': 30,'缴费': 20,'服饰': 5,'娱乐': 25}# 创建条形图序列series【series只与QChart有关,而与待展示数据的种类无关,因此只需创建一个】# 未来将不支持的方法:chart.setAxisX(axis_x, bar_series)slice_go_out = QPieSlice('出行', 300)bar_set_expense = QBarSet('支出')bar_set_income = QBarSet('收入')
2024-03-06 15:39:39 124
原创 PyQt5实现学生管理系统(附完整代码)
self.right_folder_student_search_button = QtWidgets.QPushButton(qtawesome.icon('fa.user-circle', color='balck'), "查询")self.left_s_course_search_button = QtWidgets.QPushButton(qtawesome.icon('fa.line-chart', color='white'), "学生课程")
2024-03-06 13:51:51 675 2
原创 PySide6实现socket通信程序
self.logTextEdit.append("服务器: {}".format(line))self.logTextEdit.append("服务器: {}".format(line))self.gotMessage.emit("收到消息: {}".format(line))self.logTextEdit.append("客户端: {}".format(msg))self.logTextEdit.append("客户端: {}".format(msg))# 创建 QTcpServer 对象。
2024-03-05 11:40:52 201
原创 PySide6实现页面导航布局
QFormLayout:表单布局管理器,通常用于创建类似HTML表单的布局,包含标签和输入字段。layout.addWidget(button1, 0, 0) # 行0, 列0。layout.addWidget(button2, 0, 1) # 行0, 列1。layout.addWidget(button3, 1, 0) # 行1, 列0。layout.addWidget(button4, 1, 1) # 行1, 列1。QGridLayout:网格布局管理器,将子控件放置在一个二维的网格中。
2024-03-05 10:06:20 101
原创 PySide6实现上传附件带进度条
PySide6中实现文件上传功能并附带一个进度条,你可以使用QFileDialog来选择文件,然后使用QNetworkAccessManager来上传文件,并通过QNetworkReply对象来追踪上传的进度。url = QUrl('http://example.com/upload') # 替换为你的上传URL。url = QUrl('http://example.com/upload') # 替换为你的上传URL。# 连接信号以追踪上传进度。# 打开文件对话框选择文件。# 打开文件对话框选择文件。
2024-03-04 17:42:34 67
原创 PySide6实现注册,登录流程
self.username_label = QLabel("用户名:")self.username_label = QLabel("用户名:")self.username_label = QLabel("用户名:")self.password_label = QLabel("密码:")self.password_label = QLabel("密码:")self.password_label = QLabel("密码:")self.password_label = QLabel("密码:")
2024-03-04 16:30:35 235
原创 PySide6实现word转化pdf
self.file_display.setText("选择文件:")self.file_display.setText("选择文件:")self.file_display.append("转换完成:")self.file_display.append("转换完成:")self.button = QPushButton("选择文件", self)self.button = QPushButton("选择文件", self)self.save_button = QPushButton("转化")
2024-03-01 16:38:21 492
原创 PySide6实现超市商品结算程序
self.products_list = {"苹果": 1, "香蕉": 2, "橙子": 1, "牛奶": 7, "面包": 1,self.products_list = {"苹果": 1, "香蕉": 2, "橙子": 1, "牛奶": 7, "面包": 1,"鸡蛋": 3, "火腿": 5, "可乐": 2, "薯片": 7, "洗发水": 15}"鸡蛋": 3, "火腿": 5, "可乐": 2, "薯片": 7, "洗发水": 15}self.priceLabel = QLabel("单价:")
2024-03-01 10:59:46 394
原创 PySide6实现备忘录程序
要创建一个具有左右布局的备忘录应用界面,其中左侧是备忘录列表,右侧是输入框和添加,保存按钮,以使用QSplitter来分割窗口,并使用QVBoxLayout和QHBoxLayout来组织右侧的部件。在右侧输入框填写备忘内容,点击添加按钮,保存内容到左侧备忘录列表中,再次添加,换行保存。self.memo_input.setFixedSize(200, 100) # 设置 QTextEdit 的固定大小为 400x200 像素。self.save_button = QPushButton('保存备忘录')
2024-02-29 15:34:34 117
原创 PySide6实现简易计算器
然后,我们创建了一个网格布局(QGridLayout)来放置按钮,并为每个按钮定义了文本和在网格中的位置。在initUI方法中,我们设置了窗口的标题和大小,并创建了一个垂直布局(QVBoxLayout)作为主布局。如果是等号按钮,我们尝试计算显示区域中的表达式并将其结果显示在显示区域中。如果是其他按钮,我们简单地将按钮的文本追加到显示区域的文本中。布局中包含一些数字按钮、运算符按钮和一个等号按钮,以及一个显示区域来展示输入和结果。self.display.setText("错误")# 创建按钮网格布局。
2024-02-29 10:44:19 273
原创 PySide6实现抽奖程序
当点击停止按钮时,我们停止定时器并启用开始按钮、禁用停止按钮。self.prizes = ["奖品A", "奖品B", "奖品C", "奖品D", "奖品E"] # 奖品列表。self.prizes = ["奖品A", "奖品B", "奖品C", "奖品D", "奖品E"] # 奖品列表。self.people = ["张三", "李四", "王五", "赵六", "孙七"] # 人员列表。self.people = ["张三", "李四", "王五", "赵六", "孙七"] # 人员列表。
2024-02-28 21:12:34 144
原创 PySide6实现课堂点名程序
新建一个窗口,展在窗口界面添加开始和停止按钮的QPushButton,和展示正在显示的人名QLabel,点击开始时随机显示人名列表中的一个名字并且展示在QLabel中,点击停止时停止获取人名。self.names = ["张三", "李四", "王五", "赵六", "孙七"] # 人名列表。self.names = ["张三", "李四", "王五", "赵六", "孙七"] # 人名列表。self.label.setText(f"正在点名: {self.current_name}")
2024-02-28 17:18:17 35
原创 python opencv实现图片清晰度增强
直方图均衡化:直方图均衡化是一种增强图像对比度的方法,特别是当图像的有用数据的对比度接近背景的对比度时。OpenCV中的cv2.equalizeHist()函数可以实现直方图均衡化。
2024-02-27 17:10:17 944
原创 python opencv鼠标操作图片
鼠标操作函数:你可以使用 cv2.setMouseCallback() 函数来为一个特定的窗口设置一个鼠标事件回调函数。这样,每当鼠标在该窗口上执行某种动作(如移动、点击、双击等)时,该回调函数就会被调用,并且会传递一些参数,包括事件类型、鼠标位置等。cv2.EVENT_MOUSEWHEEL 是 OpenCV 中的一个事件标识符,用于标识鼠标滚轮事件。当你在一个由 OpenCV 创建的窗口中滚动鼠标滚轮时,该事件会被触发。
2024-02-26 17:22:13 332
原创 python opencv识别身份证的文字信息
aa = cv2.drawContours(img, [box], -1, (0, 255, 0), 3) # 找出车牌的位置。1:图片处理,对图片进行灰度,二值化,膨胀和腐蚀便于以后轮廓处理。2: 循环处理轮廓,刨除不符合的轮廓信息,留下文字相关的信息;# 2. 形态学变换的预处理,得到可以查找矩形的图片。2:获取轮廓信息,循环处理得到处理好的轮廓,便于ocr识别。1:处理身份证图片,获取文字相关的轮廓信息,并且提取;# 找到最小的矩形,该矩形可能有方向。# 筛选那些太细的矩形,留下扁的。
2024-02-24 10:44:08 329
原创 python opencv实现身份证号码识别
templateImg = cv2.imread("D://test_python/open_cv/sf.jpeg") # template.jpg 即为模板文件,上面那张0-9数字图片。num = np.argmax(scores) # np.argmax():获取array的某一个维度中数值最大的那个元素的索引,索引即为对应数字。pidArea.append((x, y, w, h)) # 身份证号区域长宽比比较明显,算是一个比较明显的特征。# 先黑帽处理,移除干扰项,再二值化处理(自动阈值)
2024-02-23 15:36:51 528
原创 python opencv绘制图像轮廓
然后,你使用Canny边缘检测算法来检测图像中的边缘,并基于这些边缘找到轮廓。接着,你遍历每个轮廓,并为每个轮廓计算凸包(convex hull),最后将凸包绘制在原始图像上。在这段代码中,你使用OpenCV库读取了一个灰度图像,然后对该图像进行了二值化处理。接下来,你计算了二值化图像的矩特征,并使用这些矩特征计算了Hu矩。查找边缘检测后的图像中的轮廓。使用OpenCV库来读取一张图像,将其转换为灰度图像,然后进行边缘检测,查找轮廓,并在原始图像上绘制这些轮廓。在图像上绘制最小外接圆的轮廓。
2024-02-22 15:44:44 228
原创 python opencv实现车牌识别
aa = cv2.drawContours(value2, [box], -1, (0, 255, 0), 3) # 找出车牌的位置。ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 图像二值化。img_edge2 = cv2.morphologyEx(img_edge1, cv2.MORPH_OPEN, kernel1) # 开运算。1:对车牌进行HSV颜色空间转化,便于更好的进行颜色分隔和轮廓检测,找到蓝色车牌区域。
2024-02-22 11:04:56 640
原创 python opencv图像模糊
在OpenCV中,模糊图片或进行图像平滑处理时常用的方法包括以下几种:均值滤波 (Blurring): 均值滤波是一种简单的平滑方法,它通过对图像中每个像素的邻域内像素值进行平均来计算新的像素值。在OpenCV中,可以使用cv2.blur()或cv2.boxFilter()函数来实现均值滤波。这种方法对于去除图像中的随机噪声是有效的,但可能会导致图像变得稍微模糊。
2024-02-21 14:32:03 536
原创 python opencv比较图片相似度
三直方图算法(Three-Channel Histogram)通常指的是对图像的三个颜色通道(红色、绿色、蓝色)分别计算直方图,并通过比较这些直方图来评估图像的相似度。在OpenCV中,如果你想比较两幅图像的相似度,并且只关心单通道(例如灰度图像)的直方图相似度,你可以计算每幅图像的灰度直方图,并使用直方图比较的方法(如交叉相关、卡方距离、相关性等)来确定相似度。它首先将图像转化为灰度图像,然后计算图像的均值,接着将每个像素的灰度值与均值进行比较,生成一个64位的哈希值。# 计算HSV图像的直方图。
2024-02-21 10:13:17 900
原创 python Opencv 中绘制图
在Python的OpenCV库中,可以使用cv2.line(), cv2.circle(), cv2.rectangle(), cv2.ellipse(), cv2.putText()等函数来在图像上绘制图形。
2024-02-20 15:58:07 720
原创 python opencv学习路线
了解OpenCV的模块组成,掌握每个模块的核心功能。OpenCV包含了许多模块,如图像处理、特征检测、视频分析等。整理每个模块的核心功能,并完成第一个 OpenCV 案例,读取显示图片。
2024-02-20 15:05:33 456
PySide6实现word转化pdf
2024-03-01
PySide6实现超市商品结算程序
2024-03-01
PySide6实现的备忘录程序
2024-02-29
PySide6实现的课堂点名程序
2024-02-29
PySide6实现抽奖程序
2024-02-29
python实现获取链家租房信息
2023-12-18
windows下sourcetree 拉取代码很慢
2024-04-10
做一个CRM系统,怎么实现系统所有模块字段是动态配置的自定义字段
2024-01-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人