Python
文章平均质量分 57
cchangcs
Make something different!
毕业于武汉大学软件工程专业,现就职于某厂。
展开
-
cv2批量修改图片大小
目录一、介绍二、使用说明一、介绍最近做项目的过程中,需要将几百张图片修改为固定的大小,手动修改图片大小特别耗时且低效,因此使用Python的cv2模块写了一个批量修改的代码:import cv2i = 1nums = 1000while i < nums: # 读取图片 img = cv2.imread(".\\uav\\" + str(i) +...原创 2019-12-20 14:35:29 · 1952 阅读 · 0 评论 -
Python 实现爬取图片
Python 实现爬取图片本篇博客实现的是用Python实现爬虫爬取武汉大学教务系统首页的验证码: 下面是简单的实现,分为两部分: 一、从网页上爬取图片; 二、把图片保存到本地;下面是实现代码:# coding:utf-8import reimport urllibimport urllib2# 在网页上方爬取图片def scriper(): src ="http://2原创 2017-08-19 09:01:11 · 970 阅读 · 0 评论 -
Python 中selenium模块报错selenium.common.exceptions.WebDriverException: Message: chromedriver
Python 中selenium模块报错selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’在使用Python 中的selenium模块时,有时会报错: selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ exec原创 2017-08-25 10:42:25 · 4759 阅读 · 0 评论 -
使用Django+MySQL开发个人blog
本篇博文介绍如何在PyCharm上用Django+MySQL开发个人博客。 首先是创建一个Django项目,并且使用 python manage.py startapp myblog 命令创建一个APP,并且在settings.py中添加blog,效果如下:INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.aut原创 2017-09-18 17:41:29 · 1695 阅读 · 0 评论 -
Python学习(一)
Python学习(一)1、安转Ipython、Ipython notebook和使用Anaconda Ipython是python的一个解释器,它提供了很多以百分号%开头的magic命令,这些命令类似于linux命令; ipython notebook 命令会打开一个notebook本地服务器,一般地址是 http://localhost:8888,ipython notebook 支原创 2017-11-03 22:00:02 · 395 阅读 · 0 评论 -
根据pytorch预测生成的热力图在原图画点
在使用pytorch框架进行开发时,有时需要根据预测结果在原图画点,下面是实现的方法:具体代码的含义将通过注释的形式进行标注:img_r = cv2.imread("test21/room/1.jpg") # 读入图片img1 = cv2.imread("test21/room/1.jpg", 0)img = img1.astype(np.float32, copy=False)...原创 2018-01-21 13:03:30 · 4841 阅读 · 0 评论 -
cv2检测运动的物体
本篇博文将介绍如何使用python里面的cv2模块检测运动的物体(应该没啥地方可以用到),用到的方法是求出帧的变化量,下面是代码和代码的解释:# encoding:utf-8import cv2import imutilscap = cv2.VideoCapture(0)avg = Nonewhile(True): # 抓取原始Numpy数组来表示图像并且初始化 ...原创 2018-01-10 20:35:25 · 1121 阅读 · 0 评论 -
Python遍历numpy数组
本篇博客主要介绍如何遍历numpy数组。下面是示例代码:import numpy as npnum = np.zeros([2, 3])[rows, cols] = num.shapeprint(rows, cols)for i in range(rows): for j in range(cols): print(num[i, j])运行结果:...原创 2018-01-19 18:56:00 · 53750 阅读 · 8 评论 -
Runtime.getRuntime().exec实现Java调用python程序
在使用jython实现Java调用python程序,如果python程序中包含有第三方库(如numpy),则会报如下错误:Exception in thread "main" Traceback (innermost last): File "pyfile/detect.py", line 3, in ?ImportError: no module named numpy推荐使用的...原创 2018-02-26 15:41:49 · 7053 阅读 · 4 评论 -
将图片转换到HSV空间对图片中特定颜色进行识别
本篇博客介绍将图片从RGB颜色空间转换到HSV颜色空间,从而实现对特定颜色的对象的识别。下面是代码(实现对浅蓝色物体的识别):import cv2import numpy as nprgb_img = cv2.imread('predict1.png')HSV = cv2.cvtColor(rgb_img, cv2.COLOR_BGR2HSV) H, S, V = cv2.sp...原创 2018-02-06 14:25:05 · 6353 阅读 · 1 评论 -
Java中调用python程序
首先需要安装jython,搜索并下载jython_installer.jar,双击安装,并到安装目录下复制jython.jar到相应的java项目下,并添加到项目的库中。 import org.python.core.Py;import org.python.core.PyFunction;import org.python.core.PyObject;import org.p...原创 2018-02-08 15:34:10 · 1447 阅读 · 0 评论 -
Java调用python生成jar包之后运行不起来
在使用Runtime.getRuntime().exec()实现Java调用python脚本时,原本可以成功运行的项目,在打包成jar包之后运行出错。解决方案:将项目中所有涉及到路径的地方更换为绝对路径。...原创 2018-02-28 19:56:43 · 1647 阅读 · 0 评论 -
将.py文件转化为.pyc文件
有时出于隐藏python代码的需要,需要将.py文件转化为.pyc文件,下面是转化的方法:import compileallcompileall.compile_dir(r'D:\MyEclipse10\Ped\pyfile')使用以上代码可以将.py文件转化为.pyc文件,从而实现代码隐藏的需要,转化后的.pyc文件将在当前目录的__pycache__文件夹下。注:.pyc文...原创 2018-03-01 19:14:17 · 4535 阅读 · 0 评论 -
平安产险极客挑战赛(算法建模)总结
在过去的半个多月的时间里参加了平安产险极客挑战赛,选的方向是算法建模部分,虽然最终结果不够理想,但花了很多时间、投入了很多精力,还是希望可以对这段时间所做的东西做一个总结,也希望有相关经验的大佬可以指点一下我。首先是根据提供的字段解释表格对各个字段进行了理解,明白所需要做的是什么,然后进行了数据预处理(数据清洗、特征工程)、建模、训练模型、预测、调参等各个过程。...原创 2018-05-04 11:11:13 · 2575 阅读 · 1 评论 -
Python 3.x使用lambda (x, w): x * w报错解决方法
在python 3.x中使用lambda (x, w): x * w 时报错,而在python 2.x版本中可以正常使用。解决办法:将lambda (x, w): x * w 替换为lambda x_w: x_w[0] * x_w[1]原创 2018-05-13 12:04:47 · 45591 阅读 · 1 评论 -
cv2画opencv logo
本篇博客主要介绍使用python中的cv2模块来绘制opencv的logo,下面是实现代码:import numpy as npimport cv2import mathr1 = 70r2 = 30ang = 60d = 170h = int(d / 2 * math.sqrt(3))dot_red = (256, 128)dot_green = (int(dot...原创 2018-07-08 13:29:39 · 609 阅读 · 0 评论 -
cv2鼠标点击事件画圆
本篇博客主要介绍利用python中cv2模块实现图片相应鼠标点击事件画圆。下面是示例代码:import cv2import numpy as npdef draw_circle(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDOWN: cv2.circle(img, (x, y), 10...原创 2018-07-08 13:45:35 · 1913 阅读 · 1 评论 -
cv2把鼠标当画笔
本篇博客主要介绍通过pyhon中的cv2模块实现将鼠标当做画笔。下面是示例代码:import cv2import numpy as npdrawing = Falseix, iy = -1, -1def draw_circle(event, x, y, flags, param): global ix, iy, drawing, mode if even...原创 2018-07-08 13:55:42 · 627 阅读 · 0 评论 -
cv2模板匹配
本篇博客主要介绍使用python中cv2模板的模板匹配方法,实现在大图中查看模板图像位置,所使用的方法为cv2.matchTemplate(),和2D卷积一样,它也是用模板图像在输入图像大图上滑动,并在每一个位置对模板图像和输入图像的子区域进行比较。OpenCV提供了几种不同的比较方法,返回结果是一个灰度图像,每一个像素值显示了此区域与模板的匹配程度,如果输入图像的大小是WxH,模板的大小时w...原创 2018-07-17 10:53:57 · 3284 阅读 · 0 评论 -
cv2做hough直线检测
本篇博客主要介绍使用python中的cv2模块做hough直线检测。示例代码:import cv2import numpy as npcap = cv2.VideoCapture(0)while cap.isOpened(): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GR...原创 2018-07-17 11:30:17 · 2501 阅读 · 0 评论 -
cv2特征匹配
本篇博客主要介绍cv2模块中的特征匹配findHomography。在图像处理中,联合使用特征提取和calib3d模块中的 findHomography,可以实现在复杂图像中查找已知对象。示例代码:# encoding:utf-8import numpy as npimport cv2import matplotlib.pyplot as pltmin_match_count ...原创 2018-07-23 11:27:38 · 3438 阅读 · 0 评论 -
cv2实现视频跟踪
本篇博客主要介绍cv2中的视频分析Camshift和Meanshift。首先是Meanshift,Meanshift算法的基本原理是和很简单的。假设我们有一堆点,和一个小的圆形窗口,Meanshift 算法就是不断移动小圆形窗口,直到找到圆形区域内最大灰度密度处为止。示例代码:# encoding:utf-8import cv2import numpy as npcap =...原创 2018-07-23 12:05:41 · 1710 阅读 · 1 评论 -
cv2光流法
本篇博客主要介绍cv2模块中光流法,cv2.calcOpticalFlowPyrLK()。由于目标对象或者摄像机的移动造成的图像对象在连续两帧图像中的移动成为光流。它是一个2D向量场,可以用来显示一个点从第一帧图像到第二帧图像的移动。光流法的应用领域:(1)、由运动重建结构(2)、视频压缩(3)、Video Stabilization示例代码:import num...原创 2018-07-23 13:30:12 · 2920 阅读 · 1 评论 -
cv2背景减除
本篇博客主要介绍cv2模块中的背景减除。在很多基础应用中背景减除是一个非常重要的步骤。例如顾客统计使用一个摄像头来记录进入和离开房间的人数或者交通摄像头提取交通工具的信息等。在所有的这些例子中需要先将人或交通工具单独提取出来,因此每一个像素点所在的位置在整个时间序列中就会有很多值,从而构建一个时间序列。(1)、cv2.bgsegm.createBackgroundSubtractorMOG...原创 2018-07-23 13:49:59 · 1904 阅读 · 0 评论 -
cv2摄像头标定
本篇博客主要介绍cv2模块中的摄像头标定。摄像头会发生径向畸变和切向畸变。摄像头的内部参数和外部参数。内部参数是摄像头特异的,它包括的信息有x方向和y方向的焦距(fx, fy),光圈中心(cx, cy),相机的内部参数也称为摄像头矩阵。在进行摄像头标定时至少需要使用10张图案模式,3D点称为对象点,2D点称为图像点,可以使用棋盘或者环形格子来进行摄像头标定,使用函数cv2.findCi...原创 2018-07-24 18:34:50 · 2942 阅读 · 0 评论 -
cv2 读取显示视频并保存视频帧
本篇博客实现通过python中的cv2模块读取显示视频,并通过键盘按键保存视频帧。import cv2import string, randomdef id_generator(size=6, chars=string.ascii_uppercase + string.digits): return ''.join(random.choice(chars) for _ i...原创 2018-07-07 15:10:46 · 20832 阅读 · 4 评论 -
cv2调用摄像头并保存视频
本篇博客主要介绍通过python中的cv2模块调用摄像头,并将读取的视频内容保存为视频文件。import cv2cap = cv2.VideoCapture(0)width = 640ret = cap.set(3, width)height = 480ret = cap.set(4, height)fourcc = cv2.VideoWriter_fourcc(*'...原创 2018-07-07 15:22:17 · 8694 阅读 · 0 评论 -
cv2斑点检测
本篇博客主要介绍在python中使用cv2模块中的SimpleBlobDetector()方法实现斑点检测。斑点检测:默认检测黑色点,如果要检测白色的点需要设置bycolor为true,并且color数值为255。斑点通常是指与周围有着颜色和灰度差别的区域,在实际的图中,往往存在着大量这样的斑点,如一棵树是一个斑点,一块草地是一个斑点。由于斑点代表的是一个区域,相比单纯的角点,它的稳定性更...原创 2018-07-19 17:32:05 · 2894 阅读 · 0 评论 -
cv2霍夫圆环检测(HoughCircle)
本篇博客主要介绍利用霍夫变换来进行圆环检测。一个圆环需要3个参数来确定,所以进行圆环检测的累加器必须是三维的,这样效率就会很低,因此OpenCV使用了霍夫梯度法这个巧妙的方法,来使用边界的梯度信息,从而提升计算的效率。cv2中进行霍夫圆环检测的函数:cv2.HoughCircles(image,method,dp,minDist,circles=None,param1=None,...原创 2018-07-20 11:02:24 · 33275 阅读 · 12 评论 -
cv2 形态学运算
可以将内核看成一个小矩阵,内核在图像上滑动以进行卷积操作,例如模糊,锐化,边缘检测或其他图像处理操作 kernel = np.ones((5, 5), np.uint8)两个形态学操作是腐蚀和膨胀。他们的变体变成了开运算和闭运算根据卷积核的大小,前景的所有像素会被腐蚀掉变为0, 所以前景物体会变小,整幅图像的白色区域会被减少对于去除白噪声很有用,也可以用来断开两个连在一起的物体er...原创 2018-07-20 11:47:53 · 1428 阅读 · 0 评论 -
cv2分水岭算法进行图像分割
本篇博客主要介绍分水岭算法。任何一副图像都可以看成拓扑平面,灰度值高的区域可以看成是山峰,灰度值低的地方可以看成是山谷,我们向每一个山谷中灌注不同颜色的水,随着水位的上升,不用山谷的水就会相遇汇合,为了防止不同颜色的水汇合,我们需要在水汇合的地方构建堤坝,不停的灌水的同时不停的构建堤坝,知道所有的山峰都被水淹没,我们构建好的堤坝就是对图像的分割,这就是分水岭算法背后的原理。示例:示例代...原创 2018-07-20 11:58:37 · 2314 阅读 · 0 评论 -
cv2图像金字塔实现图像拼接
图像金字塔的一个应用是图像融合,图像金字塔可以实现两幅图像的无缝连接。下面是示例,通过图像金字塔实现将苹果和橘子拼接在一起:代码:# encoding:utf-8import cv2import numpy as np, sysimport matplotlib.pyplot as pltdef sameSize(img1, img2): rows, cols, dpt = i...原创 2018-07-15 17:06:24 · 1384 阅读 · 0 评论 -
cv2玩连连看
本篇博客主要介绍利用cv2来玩连连看。主要分为两步:1、对连连看游戏截图进行分割,得到单个的物体;2、对单个的物体进行模板匹配。进行图像分割的代码如下所示:x1 = 0y1 = 0xp = int(height / 9)yp = int(width / 8)mat = []for x2 in range(xp, height, xp): p1 = [] ...原创 2018-07-29 14:33:18 · 371 阅读 · 0 评论 -
cv2姿势估计
本篇博客主要介绍cv2中的姿态估计,在图像中绘制一些2D的线条来产生3D的效果。下面是示例代码:# encoding:utf-8import cv2import numpy as npimport glob# Load previously saved data摄像头矩阵和畸变系数with np.load('B.npz') as X: mtx, dist, _, _ ...原创 2018-07-26 12:54:00 · 1231 阅读 · 0 评论 -
cv2 立体匹配算法
本篇博客主要介绍cv2中立体匹配算法。cv2.StereoBM_create(numDisparities=None, blockSize=None)当采取两个同一水平线上的摄像头进行拍摄的时候,同一物体将在两个摄像机内被拍摄到,在两个摄像机内部,这个物体相对于摄像机中心点位置有不同的坐标。Xleft是该物体在左摄像机内相对位置,Xright是该物体在右摄像机内相对位置。两个摄像机相距S,...原创 2018-07-26 13:09:08 · 3290 阅读 · 2 评论 -
cv2机器学习-支持向量机(SVM)
本篇博客主要介绍cv2模块机器学习部分中的支持向量机(SVM),给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。使用支持向量机进行手写数字分类。训练数据:示例代码:# encoding:utf-8import cv2import numpy as npSZ = 20bin_n = 16affine_flags = cv2....原创 2018-07-26 15:43:17 · 4751 阅读 · 0 评论 -
cv2GrabCut算法实现交互式前景提取
本篇博客主要介绍cv2模块中的Grabcut算法进行前景提取。cv2.grabCut(img, mask, rect, bgdModel, fgdModel, iterCount, mode=None) img: 输入图像 mask:掩码图像,用来确定哪些区域是背景、前景,哪些可能是前景/背景,可以置为 cv2.GC_BGD,cv2.GC_FGD,cv2.GC_P...原创 2018-07-21 11:48:31 · 5596 阅读 · 1 评论 -
cv2角点检测cornerHarris
本篇博客主要介绍cv2模块中的角点检测。cv2.cornerHarris(src,blockSize,ksize,k,dst=None,borderType=None)src:数据类型为 float32 的输入图像blockSize:角点检测中考虑的区域大小ksize:Sobel求导中使用的窗口大小k:Harris 角点检测方程中的自由参数,取值参数为 [0.04...原创 2018-07-21 12:06:41 · 5924 阅读 · 0 评论 -
cv2 Tomasi角点检测
本篇博客主要介绍cv2模块中的Tomasi角点检测。cv2.goodFeaturesToTrack(),通常情况下输入的图像应该是灰度图像,然后确定需要检测到的角点的数目,再设置角点的质量水平为 0 到 1 之间。最后再设置两个角点之间的最短欧氏距离。示例代码:import cv2import numpy as npimport matplotlib.pyplot as plt...原创 2018-07-21 12:55:15 · 741 阅读 · 0 评论 -
cv2 SIFT尺度不变特征变换
本篇博客主要介绍cv2中的SIFT(尺度不变特征变换)。下面是示例代码:# encoding:utf-8import cv2img = cv2.imread('../data/home.jpg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)sift = cv2.xfeatures2d.SIFT_create()kp = sift....原创 2018-07-21 13:02:04 · 899 阅读 · 0 评论