
python
yang_jianfeng
这个作者很懒,什么都没留下…
展开
-
python爬虫技术(五)网络库requests
一、基本用法1.1.requests的HelloWorld学习任何一门技术,都会用一个超级简单的案例起步,这个案例统称为HelloWorld。学习requests我们也沿用这个习惯。在开始使用requests之前,需要使用下面的命令安装requests.pip install requestsurlib库中的urlopen方法实际上是以GET方式请求网页,而requests中对应的方法是get,该方法可以接受一个URL,然后又会返回一个对象,通过get方法的返回值,可以获取HTTP响应数据。1原创 2021-08-02 00:09:55 · 217 阅读 · 0 评论 -
python爬虫技术(四)网络库urllib3
urlib3是另一个Python网络库,功能要比urlib更强大。一、urlib3简介在python程序中,使用频率最高的网络模块莫过于urlib,因为urlib是Python内置的网络模块,不需要单独安装,使用起来非常方便。但随着互联网的不断发展,urlib里的功能明显已经不够用了,所以有了后来的urlib2和urlib3。二、urlib3模块三、发送HTTP GET请求四、发送HTTP POST请求五、HTTP请求头六、HTTP响应头七、上传文件八、超时由于HTTP底层是基于Sock原创 2021-08-01 19:41:52 · 485 阅读 · 0 评论 -
python爬虫技术(三)网络库urllib
一、rullib简介urlib是python3中内置的HTTP请求库,不需要单独安装。二、发送请求与获取响应2.1.用urlopen函数发送HTTP GET请求原创 2021-07-20 00:03:39 · 243 阅读 · 0 评论 -
python爬虫技术(二)爬虫基础
一、HTTP基础1.1.URI和URLURI的英文全称是Uniform Resource Identifier,中文的意思是“统一资源标识符”。URL是URI的子集,也就是说,每个URL都是URI,但并不是所有的URI都是URL。URI除了包括URL外,还是URN(Universal Resource Name,统一资源名称)。URN只命名资源而不指定如何获取资源。1.2.超文本超文本英文名字是hypertext。在Web应用中,超文本主要是指HTML代码。我们在浏览器中看到的内容就是浏览器解析原创 2021-07-17 23:48:42 · 181 阅读 · 0 评论 -
python爬虫技术(一)
开发环境配置(1)安装python标准环境;(2)安装Anaconda Python环境;(3)设置PATH环境变量;(4)安装PyCharm;(5)配置PyCharm。原创 2021-05-25 22:35:39 · 186 阅读 · 0 评论 -
python+openCV图像处理(三十)
import cv2 as cvimport numpy as npfrom PIL import Imageimport pytesseract as tessdef recognize_text(): gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) ret, open_out = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) cv.imshow("原创 2021-01-23 14:32:36 · 151 阅读 · 0 评论 -
python+openCV图像处理(二十九)
import cv2 as cvimport numpy as npdef face_detect_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) face_detector = cv.CascadeClassifier("1.xml") #face_detector = cv.CascadeClassifier("2.xml") #下载地址:https://github.com/opencv/open原创 2021-01-23 14:31:13 · 143 阅读 · 1 评论 -
python+openCV图像处理(二十八)分水岭
import cv2 as cvimport numpy as npdef watershed_demo(): # remove noise if any 去噪 #print(src.shape) blurred = cv.pyrMeanShiftFiltering(src, 10, 100) # gray\binary image 灰度、二值化 gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) ret, bi原创 2021-01-23 14:29:48 · 148 阅读 · 0 评论 -
python+openCV图像处理(二十七)
import cv2 as cvimport numpy as npdef tophat_demo(image):#顶帽=原图-开操作(腐蚀+膨胀) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 15)) dst = cv.morphologyEx(gray, cv.MORPH_TOPHAT, kernel) #增加亮原创 2021-01-23 14:28:50 · 126 阅读 · 0 评论 -
python+openCV图像处理(二十六)开运算与闭运算
import cv2 as cvimport numpy as npdef open_demo(image):#开操作=腐蚀+膨胀 去外边白点 print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) cv.imshow("binary", bina原创 2021-01-23 14:27:49 · 680 阅读 · 0 评论 -
python+openCV图像处理(二十五)形态学处理
import cv2 as cvimport numpy as npdef erode_demo(image):#腐蚀 #print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) cv.imshow("binary", binary)原创 2021-01-23 14:26:00 · 145 阅读 · 0 评论 -
python+openCV图像处理(二十四)对象检测
import cv2 as cvimport numpy as npdef measure_object(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) print("threshold value : %s"%ret) cv.imshow("binary原创 2021-01-23 14:24:34 · 252 阅读 · 0 评论 -
python+openCV图像处理(二十三)轮廓检测
import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) edge_output = cv.Canny(gray, 30, 100) cv.imshow("Canny Edge", edge_output) return edge原创 2021-01-23 14:22:55 · 250 阅读 · 0 评论 -
python+openCV图像处理(二十二)圆检测
import cv2 as cvimport numpy as npdef detect_circles_demo(image): dst = cv.pyrMeanShiftFiltering(image, 10, 100) cimage = cv.cvtColor(dst, cv.COLOR_BGR2GRAY) circles = cv.HoughCircles(cimage, cv.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, m原创 2021-01-23 14:20:38 · 397 阅读 · 0 评论 -
python+openCV图像处理(二十一)直线检测
import cv2 as cvimport numpy as npdef line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) edges = cv.Canny(gray, 50, 150, apertureSize=3) lines = cv.HoughLines(edges, 1, np.pi/180, 200)#半径步长为1,每次偏转1度,直线最小长度200 for line in原创 2021-01-23 13:58:25 · 398 阅读 · 1 评论 -
python+openCV图像处理(二十)边缘检测
import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0)#降噪 gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) # X Gradient xgrad = cv.Sobel(gray, cv.CV_16SC1, 1, 0) # Y Gradient ygrad = cv.原创 2020-12-27 23:51:35 · 215 阅读 · 0 评论 -
python+openCV图像处理(十九)边缘检测
import cv2 as cvimport numpy as npdef lapalian_demo(image): #dst = cv.Laplacian(image, cv.CV_32F) #lpls = cv.convertScaleAbs(dst) kernel = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]]) dst = cv.filter2D(image, cv.CV_32F, kernel=kernel)原创 2020-12-27 23:50:32 · 210 阅读 · 0 评论 -
python+openCV图像处理(十八)图像金字塔
import cv2 as cvimport numpy as npdef pyramid_demo(image):#图像金字塔 level = 3 temp = image.copy() pyramid_images = [] for i in range(level): dst = cv.pyrDown(temp) pyramid_images.append(dst) cv.imshow("pyramid_down_"原创 2020-12-27 23:49:36 · 144 阅读 · 0 评论 -
python+openCV图像处理(十七)
import cv2 as cvimport numpy as npdef big_image_binary(image): print(image.shape) cw = 256 ch = 256 h, w = image.shape[:2] gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) for row in range(0, h, ch): for col in range(0, w, cw原创 2020-12-27 23:48:36 · 124 阅读 · 0 评论 -
python+openCV图像处理(十六)二值化阈值
import cv2 as cvimport numpy as npdef threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_BINARY|cv.THRESH_OTSU) print("threshold value %s"%ret) cv.imshow("threshold_bi原创 2020-12-27 23:47:37 · 240 阅读 · 0 评论 -
python+openCV图像处理(十五)模板匹配
import cv2 as cvimport numpy as npdef template_demo(): tpl = cv.imread("1.png") target = cv.imread("2.png") cv.imshow("template image", tpl) cv.imshow("target image", target) methods = [cv.TM_SQDIFF_NORMED, cv.TM_CCORR_NORMED, cv.TM_原创 2020-12-27 23:46:36 · 123 阅读 · 0 评论 -
python+openCV图像处理(十四)直方图反向投影
import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef back_projection_demo():#直方图反向投影 image1 = cv.imread("1.png") image2 = cv.imread("2.png") roi_hsv = cv.cvtColor(image1, cv.COLOR_BGR2HSV) target_hsv = cv.cvtColor(i原创 2020-12-27 23:45:21 · 174 阅读 · 1 评论 -
python+openCV图像处理(十三)直方图均衡化
import cv2 as cvimport numpy as npdef equalHist_demo(image):#直方图均衡化 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) dst = cv.equalizeHist(gray) cv.imshow("equalHist_demo", dst)def clahe_demo(image):#局部自适应直方图均衡化 gray = cv.cvtColor(image, c原创 2020-12-27 23:44:13 · 163 阅读 · 0 评论 -
python+openCV图像处理(十二)直方图
import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef plot_demo(image): plt.hist(image.ravel(), 256, [0, 256])#统计频次 plt.show("直方图")def image_hist(image): color = ('blue', 'green', 'red') for i, color in enumerate(c原创 2020-12-27 23:43:14 · 169 阅读 · 0 评论 -
python+openCV图像处理(十一)边缘保留滤波
import cv2 as cvimport numpy as npdef bi_demo(image): dst = cv.bilateralFilter(image, 0, 100, 15)#双边滤波 cv.imshow("bi_demo", dst)def shift_demo(image): dst = cv.pyrMeanShiftFiltering(image, 10, 50)#均值滤波 cv.imshow("shift_demo", dst原创 2020-12-01 22:47:36 · 388 阅读 · 0 评论 -
python+openCV图像处理(十)高斯模糊
import cv2 as cvimport numpy as npdef clamp(pv): if pv > 255: return 255 if pv < 0: return 0 else: return pvdef gaussian_noise(image): h, w, c = image.shape for row in range(h): for col in rang原创 2020-11-30 23:59:36 · 545 阅读 · 0 评论 -
python+openCV图像处理(九)模糊操作
import cv2 as cvimport numpy as npdef junzhi_blur_demo(image): dst = cv.blur(image, (5, 5)) cv.imshow("junzhi_blur", dst)def median_blur_demo(image):#去椒盐噪声 dst = cv.medianBlur(image, 5) cv.imshow("median_blur", dst)def custom_blur_de原创 2020-11-30 23:57:25 · 229 阅读 · 0 评论 -
python+openCV图像处理(八)ROI与泛洪填充
import cv2 as cvimport numpy as npdef fill_color_demo(image): copyImg = image.copy() h, w = image.shape[:2] mask = np.zeros([h+2, w+2], np.uint8) cv.floodFill(copyImg, mask, (30, 30), (0, 255, 255), (100, 100, 100), (50, 50, 50), cv.FLO原创 2020-11-30 23:55:21 · 194 阅读 · 0 评论 -
python+openCV图像处理(七)像素运算改变亮度/对比度
import cv2 as cvimport numpy as npdef logic_demo(m1, m2): # 逻辑运算 dst_and = cv.bitwise_and(m1, m2) cv.imshow("logic_and", dst_and) dst_or = cv.bitwise_or(m1, m2) cv.imshow("logic_or", dst_or) image = cv.imread("D:/images/test.jpg")原创 2020-11-30 23:52:51 · 1028 阅读 · 0 评论 -
python+openCV图像处理(六)像素运算
import cv2 as cvimport numpy as npdef add_demo(m1, m2): dst = cv.add(m1, m2) cv.imshow("add_demo", dst)def subtract_demo(m1, m2): # 减 dst = cv.subtract(m1, m2) cv.imshow("subtract_demo", dst)def divide_demo(m1, m2): # 除 dst原创 2020-11-30 23:50:15 · 316 阅读 · 0 评论 -
python+openCV图像处理(五)视频色彩空间转换
import cv2 as cvimport numpy as npdef extrace_object_demo(): capture = cv.VideoCapture("D:/images/color_object.mp4") while(True): ret, frame = capture.read() if ret == False: break; hsv = cv.cvtColor(frame, c原创 2020-11-30 23:48:08 · 374 阅读 · 0 评论 -
python+openCV图像处理(四)色彩空间转换
import cv2 as cvimport numpy as npdef color_space_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) cv.imshow("gray", gray) hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV) cv.imshow("hsv", hsv) yuv = cv.cvtColor(image, cv.COLOR_BG原创 2020-11-30 23:45:10 · 212 阅读 · 0 评论 -
Python Qt(十三)PyQtDataVisualization三维绘图
PyQtDataVisualization三维绘图Data Visualization是Qt中的一个三维数据可视化模块,可以绘制三维柱状图、三维散点图、三维曲面图等。Data Visualization模块的功能虽然不能和一些专业的三维图形类库(如VTK)相提并论,但是它简单易用,对于简单的三维数据显示是比较实用的。PyQt5中并没有Data Visualization模块,需要单独安装PyQtDataVisualization包。一、PyQtDataVisualization模块概述1.1.模块安装原创 2020-09-20 23:37:56 · 5027 阅读 · 0 评论 -
Python Qt(十二)PyQtChart二维绘图
PyQtChart二维绘图Charts是Qt的一个二维图表模块,可以绘制各种常见的二维图表,如折线图、柱状图、饼图、散点图、极坐标图等,功能比较全面,绘制的图形效果也比较美观,是用于数据二维可视化的有力工具。PyQtChart是Qt Charts模块的Python绑定,他需要单独安装。一、PyQtChart概述1.1.模块安装与基本功能Charts是Qt类库的一部分,但是安装的PyQt5里并没有这个模块,需要单独安装一个PyQtChart包。...原创 2020-09-20 23:31:24 · 3453 阅读 · 0 评论 -
Python Qt(十一)GUI设计增强技术
GUI设计增强技术多语言界面,或称为国际化,是管理界面和程序中的字符串资源,进行语言翻译,从而为多软件提供多语言界面的技术。Qt样式表QSS(Qt Style Sheets)定制界面效果,QSS是类似于CSS的技术,具有非常强大的界面效果定制功能,使用QSS可以设计出独具特色的软件界面。一、多语言界面1.1.多语言界面设计概述1.2.多语言界面设计示例二、QSS定制界面...原创 2020-09-19 23:46:44 · 136 阅读 · 0 评论 -
Python Qt(十)多媒体
多媒体多媒体功能指的主要是音频和视频播放功能,Python自带有几个多媒体相关的模块可以播放几种格式的音频文件,但没有视频文件播放功能。一、PyQt5多媒体模块功能概述PyQt5多媒体模块提供了一系列的类,可以实现如下一些功能。(1)音频播放可以播放压缩的音频文件;可以播放低延迟音效文件;可以访问音频设备,控制采样频率、数据字长、通道数等参数,输出音频原始数据。(2)通过音频设备录音可以探测系统是否存在麦克风这样的音频输入设备。...原创 2020-09-13 23:36:08 · 351 阅读 · 0 评论 -
Python Qt(九)文件
文件一、文件操作相关类概述1.1.文件操作接口类QFile1.2.文件流操作类QTextStream和QDataStream1.3.目录和文件操作相关的类二、文本文件操作2.1.功能概述2.2.QFile读写文本文件2.3.QFile和QTextStream结合读写文本文件2.4.Python内建函数读写文本文件三、二进制文件读写3.1.基础知识和工具软件3.2.QDataStream功能概述3.3.QDataStream流化数据读写3.4.QDataStream原始数据读写四原创 2020-08-30 22:23:13 · 408 阅读 · 0 评论 -
Python Qt(八)绘图
绘图一、QPainter绘图1.1.QPainter绘图系统1.2.QPen主要功能1.3.QBrush的主要功能1.4.渐变填充1.5.QPainter绘制基本图形二、坐标系统和坐标转换2.1.坐标变换函数2.2.坐标变换绘图实例2.3.视口和窗口2.4.绘图叠加的效果三、自定义界面组件3.1.功能概述3.2.自定义QWidget子类QmyBattery3.3.QmyBattery类的使用四、Graphics View绘图架构4.1.场景、视图与图形项4.2.Graph原创 2020-08-30 22:13:34 · 1343 阅读 · 0 评论 -
Python Qt(七)数据库
数据库一、Qt SQL模块概述1.1.Qt SQL支持的数据库1.2.SQLite数据库1.3.Qt SQL模块的主要类二、QSqlTableModel的使用2.1.功能概述2.2.窗体可视化设计2.3.窗体业务逻辑类的设计和初始化2.4.打开数据库和数据表2.5.添加、插入与删除记录2.6.保存与取消修改2.7.设置和清除照片2.8.数据记录的遍历2.9.记录的排序2.10.记录的过滤三、QSqlQueryModel的使用3.1.QSqlQueryModel功能概述3.原创 2020-08-29 23:54:47 · 566 阅读 · 0 评论 -
Python Qt(六)对话框与多窗口设计
对话框与多窗口设计一、标准对话框概述PyQt5为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无须自己设计这些常用的对话框,从而可以减少程序设计工作量。QFileDialog对话框QColorDialog对话框QFontDialog对话框QProgressDialog对话框QInputDialog输入对话框QMessageBox消息对话框二、自定义对话框及其使用对话框不同调用方式示例项目的文件组成主窗口的设原创 2020-08-23 18:42:12 · 1136 阅读 · 0 评论