python
三个臭皮姜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python取出xml文件中的部分内容
Python取出xml文件中的部分内容前言 最近在搞目标检测方面的东西,由于遇到有个项目需要的标签格式为txt格式的,而我之前用labelimg工具标注生成的是xml格式的文件,由于懒,就想找个脚本自动提取出我想要的信息,但是并没有找到合适的,后来在参考了几位博主的文章后逐渐懂得如何取出我自己想要的内容。正文我的xml示例如下(我命名为1.xml):<annotation> <folder>poses</folder> <filename>1原创 2022-03-28 15:30:42 · 10129 阅读 · 11 评论 -
python给图片批量重命名
由于两个文件夹下的图片名字是一样的,但是我想让另一个文件夹接在一个文件夹之后重新命名,也就是从732.jpg开始递增命名。想到以后可能还会经常遇到这种情况,所以还是保存一下,以后就懒得再重新写了。'''图像批量重命名'''import osstart = 732 # 开始的序号image_dir = './output/' # 源图片路径images_list = os.listdir(image_dir)nums = len(os.listdir(image_dir))print原创 2022-02-18 19:59:05 · 3231 阅读 · 0 评论 -
多线程-摄像头定位车牌的位置
继上一篇:opencv-python打开摄像头定位车牌之后,我发现摄像头有时会比较卡顿,显然这不是我想要的效果。产生卡顿的原因在于:摄像头读取到的有很多帧,但是如果每一帧我们都对其做各种滤波、腐蚀、膨胀等操作,那显然计算是跟不上摄像头捕捉的速率的。那么我们就引入了多线程。想法如下:把摄像头显示的部分放在主线程,然后开启一个线程去处理图像。实现代码如下:import cv2import threadingcap = cv2.VideoCapture(1) # 创建一个 VideoCaptur原创 2021-07-07 21:16:08 · 397 阅读 · 1 评论 -
opencv-python打开摄像头定位车牌
根据车牌的特点定位车牌。import cv2cap = cv2.VideoCapture(1) # 创建一个 VideoCapture 对象while (cap.isOpened()): # 循环读取每一帧 ret_flag, frame = cap.read() # 返回两个参数,第一个是bool是否正常打开,第二个是照片数组,如果只设置一个则变成一个tuple包含bool和图片 # 高斯去噪 image = cv2.GaussianBlur(frame, (3,原创 2021-07-03 17:33:50 · 914 阅读 · 0 评论 -
Opencv批量修改图片尺寸并保存
最近要做一个深度学习项目,但是发现数据集大小不太规整,或者是不是我想要的尺寸,于是决定批量修改统一大小。【原来的数据】原来的数据大小是20×20的,我想要的是32×32大小的。【修改尺寸后的数据】可以看到尺寸明显变大了。脚本如下:import cv2import os# 原始图片文件夹路径ori_path = 'D:\\pycharm\\certify_code_detect\\datasets\\car_data\\0\\'# 修改后保存的文件夹路径save_path = 'D原创 2021-06-30 22:32:31 · 3104 阅读 · 6 评论 -
Opencv-Python车牌字符切割
声明:本篇主要代码参考自这篇文章:https://blog.youkuaiyun.com/m0_38024433/article/details/78650024在此基础上作了一些修改。import cv2 as cvimg = cv.imread('test.png', 1)cv.imshow('origin', img)gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) # 灰度化cv.imshow('gray', gray)blur = cv.bilater原创 2021-06-30 15:38:22 · 647 阅读 · 0 评论 -
探究几种神经网络不同写法的效果(Tensorflow2 以AlexNet网络为例)
猫狗分类的数据集,各一千张。一.第一版import tensorflow as tfimport matplotlib.pyplot as pltimport numpy as npimport pathlibfrom keras.layers import Input, Activation, BatchNormalization, Flattenfrom keras.layers import Dense, Conv2D, MaxPooling2D, Dropoutfrom keras.原创 2021-06-29 16:09:47 · 328 阅读 · 0 评论 -
Ubuntu16.04安装CPU版TensorFlow2,并跑一个简单的程序
一.下载Anaconda3安装包先到官网或清华的镜像站下载安装包:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/或者直接下载我已经上传到百度网盘的包:链接:https://pan.baidu.com/s/1EmpScgLg-kQ8eEndHSDALQ提取码:abcd复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享包的版本我选择:Anaconda3-5.2.0-Linux-x86_64二.安装Anac原创 2021-06-27 21:20:33 · 836 阅读 · 2 评论 -
python批量创建文件夹
最近需要做一个小项目,需要批量创建一些文件夹,方便存放,所以写了个脚本:import ospath = 'C://Users//16577//Desktop//cate//'# 31个,不含港澳台name = ['京','津','冀','晋','蒙','辽','吉','黑','沪','苏','浙','皖','闵','赣','鲁','豫','鄂', '湘','粤','桂','琼','渝','川','黔','滇','藏','陕','甘','青','宁','新']if os.path原创 2021-06-20 11:35:59 · 731 阅读 · 0 评论 -
Python实现Powell方法
题目:代码:(思路以后再写)import numpy as npfrom sympy import symbols, diff,solvecount = 0 # 迭代次数maxtimes = 40 # 最大迭代次数e = 0.01X0 = [0,0] # 初始点# 初始方向d1 = [1,0]d2 = [0,1]alpha = symbols('alpha')def fun(x1,x2): return 10*(x1+x2-5)**2 + (x1 - x2)*原创 2021-06-19 20:20:35 · 2308 阅读 · 0 评论 -
PyMySQL学习之---连接Mysql数据库
一.环境的安装与准备首先需要在自己电脑上安装Mysql的环境,参考这篇文章:超级详细的mysql数据库安装指南接着安装客户端Navicat,参考这篇文章:Navicat安装及简单使用安装好之后,我新建了一个数据库叫db_test,如下:再在该数据库点击右键新建一个表table_student用于测试:然后是手动插入一些数据:试着用查询语句访问:二.编写Python程序连接Mysql数据库首先需要用pip install pymysql安装pymysql这个库。接着连接数据库主要有原创 2021-06-18 10:56:39 · 521 阅读 · 1 评论 -
解决ERROR: Could not find a version that satisfies the requirement thread (from versions: none)
我想要用pip install thread安装Python的thread库的时候遇到报错:因为我默认安装的都是清华的镜像源,我还以为是清华的源没有这个库,然后又换成了阿里云和豆瓣的源,发现都是一样的结果。然后百度搜了一下,好像也没有遇到类似的解决办法,然后在Stackflow上面看到了类似的讨论,大致意思是Python3好像不叫这个名字了,好像改成了_thread。于是我又试了一下pip install _thread发现又报错:ERROR: Invalid requirement: ‘_th原创 2021-06-15 16:24:21 · 5672 阅读 · 0 评论 -
使用resnet进行简单的垃圾分类(tensorflow2)
一.说明我的环境:Windows10系统Pycharmtensorflow2.3.0代码目录结构:数据集按类别分开成单独的文件夹,每个文件夹下存储对应的数据集图片:各文件夹说明:1.datasets:数据集所在位置2.model:训练之后生成的模型所在位置3.pretrain_model:存放着resnet50的预训练模型4.test:单独进行预测的图片5.predict.py:调用生成的h5模型进行预测6.train.py:进行训练二.训练1.导入所需的库impor原创 2021-06-07 22:55:57 · 5237 阅读 · 10 评论 -
最优化方法---一维搜索的经典方法(成功失败法、牛顿法、0.618法python实现)
上学期学习了最优化方法这门课,但是到了现在该忘的忘得差不多了,所以想写个文章来总结记录一下,以后需要用到的话再过来看。这次主要总结3个经典的算法:成功-失败法、牛顿法和0.618法。一.成功-失败法成功失败法的计算步骤如下:(1)给定初始点x0∈R,搜索步长h>0及精度e>0.(2)计算x1=x0+h,f(x1)。(3)若f(x1)<f(x0),则搜索成功,下一次搜索就大步前进,用x1代替x0, 2h代替h,继续进行搜索;若f(x1)>=f(x0),则搜索失败,下一次搜原创 2021-06-03 17:38:26 · 5890 阅读 · 5 评论 -
Opencv-python函数参数解读记录(带例子)持续更新
一.膨胀操作–cv2.dilate()格式:cv2.dilate(src, kernel, iteration)参数含义:(部分,只是写了比较常用的)src – 目标图片kernel – 进行操作的核,默认为3×3iterations – 腐蚀次数,默认为1使用举例:dilate = cv2.dilate(img,(3,3),iterations=3)img为上一步操作的图片名称。二.腐蚀操作–cv2.erode()cv2.erode(src, kernel, iteration)原创 2021-05-24 21:37:28 · 914 阅读 · 0 评论 -
Opencv-python根据阈值找出车牌的位置(目前只是蓝色车牌)
目前做的只是蓝色车牌,有一定的识别能力,但有些图片识别效果不太好。先记录一下,后面可能会用到。#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/5/24 19:23# @Author : 若谷# @File : license_number_location.py# @Software: PyCharmimport cv2 as cvimport numpy as npimport imutils# 导入图片img原创 2021-05-24 21:17:34 · 558 阅读 · 1 评论 -
opencv-python根据阈值进行二值化
继上一篇文章Opencv+python打开摄像头拖动滑动条取颜色阈值得到阈值之后,我们需要对图片进行二值化,怕自己忘了不好找,特此记录一下。#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/5/24 19:38# @Author : 若谷# @File : 根据选出的阈值二值化.py# @Software: PyCharmimport cv2import numpy as npframe = cv2.imread('./原创 2021-05-24 19:54:30 · 547 阅读 · 2 评论 -
Opencv+python打开摄像头或对图片拖动滑动条取颜色阈值
先看看效果:接着上代码:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/5/21 19:12# @Author : 若谷# @File : my_track_bar.py# @Software: PyCharmimport numpy as npimport cv2# 打开摄像头:0为本地摄像头,1为外接摄像头cap = cv2.VideoCapture(1)def nothing(x): pass原创 2021-05-21 19:58:06 · 1623 阅读 · 0 评论 -
Python+opencv打开摄像头,使用按键拍照
曾经部分参考过某篇文章,但是太久了找不到出处了。import cv2cap = cv2.VideoCapture(1) # 创建一个 VideoCapture 对象,1为外接的USB摄像头flag = 1 # 设置一个标志,用来输出视频信息num = 1 # 递增,用来保存文件名while (cap.isOpened()): # 循环读取每一帧 ret_flag, Vshow = cap.read() # 返回两个参数,第一个是bool是否正常打开,第二个是照片数组,如果只设置原创 2021-05-21 18:48:53 · 2618 阅读 · 0 评论 -
关于jupyter notebook的基本使用
一.Jupyter notebook是啥?Jupyter notebook(以下简称jupyter),是Python的一个轻便的解释器,类似于Excel单元格形式,可以编写并允许代码,也可以做笔记,一般安装了Anaconda之后jupyter也自动被安装了,因此可以不用额外安装。关于Anaconda的安装可以参考:【Anaconda教程01】怎么安装Anaconda3二.怎么打开Jupyter?(前提是已经装好了Anaconda)按win+R键,输入cmd,打开黑框框,直接输入:jupyter no原创 2021-05-18 17:43:23 · 2679 阅读 · 0 评论 -
用python画函数图像
画sigmoid激活函数:import numpy as npimport matplotlib.pylab as pltdef sigmoid(x): return 1/(1+np.exp(-x)) # sigmoid函数x = np.arange(-6.0,6.0,0.1) # 限定x的范围,给什么区间画出来的就是在哪个区间y = sigmoid(x) # 求y值plt.plot(x,y)plt.title("sigmoid")plt.ylim(0,1) # 指定y轴原创 2020-12-18 22:40:41 · 8123 阅读 · 1 评论 -
使用opencv给图片添加水印
先来看下效果:【原图】【我的水印】【最终效果】有模有样了是不是?这里简单解释一下原理或者说是我的思路:制作这个水印时,我第一反应是使用opencv里面图像重叠混合的操作,通过调整不同的权值可以使图片起到一个透明的效果,从而看起来像是一个水印。这个图像混合的操作,使用的是cv2.addWeight()函数,但使用这个函数有个弊端:加权融合的图片大小尺寸必须相同。一般情况下,水印是比我们的图片小的,所以我们不可能去缩小我们的图片,这会使我们的图片质量降低。但也并非没有办法,那就是从我们的图片中原创 2020-12-08 22:00:48 · 2130 阅读 · 0 评论 -
用numpy实现与门、与非门、或门、或非门、异或门
利用深度学习中感知机的知识实现以下门电路:与门、与非门、或门、或非门、异或门代码如下:'''2020.12.5用代码实现与门、与非门、或门、或非门、异或门注:w 和 b 这些参数的设置并非唯一'''import numpy as np# 与门def AND(x1,x2): x = np.array([x1,x2]) w = np.array([0.5,0.5]) b = -0.7 y = np.sum(x*w)+b if y<=0:原创 2020-12-05 10:18:06 · 2484 阅读 · 0 评论 -
opencv报错:error: (-215:Assertion failed) src.type() == CV_8UC1 in function ‘cv::adaptiveThreshold‘
报错代码段为:binary = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 25, 15)之前没用过这个自适应的阈值设置,这个需要以灰度图读入,但是我是以彩色图读入的,即:把0改为1即为以灰度图读入:改过来之后就不会报错了。...原创 2020-11-23 19:10:22 · 7553 阅读 · 2 评论 -
window10下载安装pytorch1.6.0
安装步骤如下:1.打开Anaconda Prompt创建虚拟环境:conda create -n pytorch1.6.0 python==3.62.激活环境:conda activate pytorch1.6.03.上官网https://pytorch.org/get-started/previous-versions/查看版本对应关系:注意pytorch版本和cuda版本,我的cuda版本是10.1。如果不知道自己电脑cuda版本的可以百度。接着复制以上内容:pip insta原创 2020-11-22 22:11:36 · 6547 阅读 · 1 评论 -
python实现CCF题--出现次数最多的数
题目如下:说明:我的输入格式不一样跟原题一模一样,只是把功能实现了。代码如下:s = input("请输入元素:")newlist = list(s.split()) # 取出每个元素,装入列表dict1 = {} # 用字典来存储出现的数字及其对应出现的次数for i in newlist: if i in dict1: dict1[i] += 1 # 如果已存在则个数加一 else: dict1[i] = 1 # 如果不存在则为原创 2020-10-27 18:32:58 · 628 阅读 · 0 评论 -
python打印杨辉三角的两种思路
方法一:定义一个列表,存放第一行初始元素1,接着复制一个列表,将其转换为字符串,方便将其格式化(也就是加\t制表符),但是这种方法空间开销比较大。def prin(num): mylist = [1] # 初始为1,默认第一行 for i in range(num): # 打印num行 Listc = mylist.copy() for j in range(len(Listc)): temp = str(Listc[j])原创 2020-10-25 11:51:51 · 821 阅读 · 0 评论 -
python中的列表生成式
列表生成式有助于代码的简洁和美观。语法格式:[表达式 for 循环计数器 in 可迭代对象]列表生成式与普通for循环的区别1.列表生成式没有循环体,不需要冒号2.列表生成式的for关键字前面定义一个表达式,这个表达式通常会包含循环计数器例1:生成一个列表为[1,4,9,16,25,36…100]常规做法:alist = []for x in range(1,11): alist.append(x*x)print(alist)用列表生成式:L1 = [x*x for x i原创 2020-10-19 20:35:57 · 335 阅读 · 0 评论 -
python中的enumerate()
enumerate( ) :将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标enumerate(sequence, [start=0])1.列出所有数据和对应下标2.从指定位置开始列举下标原创 2020-10-19 20:27:08 · 209 阅读 · 0 评论 -
括号匹配--python--来自北大mooc课程数据结构与算法python版
括号匹配。以下代码来自mooc课程:数据结构与算法(Python版)北京大学自己写了注释,方便自己回看。# 定义一个栈的类class Stack: def __init__(self): # 初始化一个栈 self.items = [] def isEmpty(self): # 判断栈是否为空 return self.items == [] def push(self, item): # 入栈 self.items.a原创 2020-10-05 16:42:20 · 253 阅读 · 0 评论 -
python返回列表中最大和第二大的元素
设计一个函数返回传入的列表中最大和第二大的元素的值。测试输入:[1,2,3,4,5,6]预期输出:(5,6)测试输入:[11,2,30,4,55,6]预期输出:(30,55)要求不破坏原来的列表。方法一:用max方法取出列表里最大的一个元素,同时删除这个元素,再用max取一次,得到的就是第二大的元素。代码:def max2(x): m1 = max(x)#m1是最大元素 x2 = x.copy()#复制一个列表,同时不破坏原来的列表 x2.remove(m1)#把列表原创 2020-09-20 16:48:33 · 12767 阅读 · 4 评论 -
python计算阶梯数(没啥技术含量的)
本关任务:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶。预期输出:119def countlevel(): count = 0 i = 0 while count != 1: i = i + 1 if (i - 1) % 2 == 0: if (i -原创 2020-09-19 22:04:52 · 3613 阅读 · 0 评论 -
python判断字符串是否是回文数
一行简单代码:st = 'abcbd'if (st==st[::-1]): print("st 是回文数")else: print("st 不是回文数")结果:**st[::-1]**表示从后往前逐个取字符串。原创 2020-09-16 20:48:56 · 1958 阅读 · 0 评论 -
pip或conda常用镜像源及常用命令
常用镜像源:阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban) http://pypi.douban.com/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/解决下载超时:pip install原创 2020-09-12 21:13:37 · 572 阅读 · 0 评论 -
pycharm中打不开Qtdesigner问题解决
今天想要学习一下pyqt5,结果要打开Qtdesigner的时候,报了如下错误:害,不就是报错嘛,很正常。于是习惯性的打开百度看各位前辈的解决办法,发现,每个人有每个人不同的方法,于是我也都试了一下。然后…还是失败。从早上搞到下午,愣是没给我搞好。期间,把pyqt5和pyqt5-tools卸载了又装,装了又卸载,反复几次,还是一样的问题,我傻了。一度要放弃pyqt5。最后成功的时候用的方法是这样的:1.找到对应路径D:\Anaconda\Lib\site-packages\pyqt5_tools原创 2020-09-04 16:16:26 · 3730 阅读 · 5 评论 -
python3.7安装dlib库
我是用pycharm写的代码,网上看到很多人不知道是不是因为使用vs编写代码,所以才使得安装一个dlib包都要折腾好半天。我的安装步骤如下:1.下载离线包:链接:https://pan.baidu.com/s/1pC5z5-HOxyr6LjCbv9KuXA提取码:py372.放在平常自己安装python第三方库的目录下(别告诉我你没安装过离线包):直接在命令行输入:pip install dlib-19.17.99-cp37-cp37m-win_amd64安装完之后,再输入pip list原创 2020-08-30 16:23:12 · 692 阅读 · 0 评论 -
AttributeError: module ‘cv2.cv2‘ has no attribute ‘TrackerCSRT_create‘
今天在运行迪哥的opencv实战课程的配套代码时,发现报了如下错误:百度查了一下,说是如果要使用OpenCV集成的跟踪器,就必须安装opencv-contrib-python包。于是在cmd窗口里输入pip list 查了一下,果然没有安装这个包。于是手动装了一下,再次运行,报错就没了!这里提供我装好了的包链接:https://pan.baidu.com/s/1WqnR7Va3p_q4ufNBLZVzEA提取码:cv33官网离线下载是比较慢的。下载好离线包之后把它放在对应的路径下,我的路径原创 2020-08-30 11:43:04 · 705 阅读 · 0 评论
分享