手动反爬虫: 原博地址
知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息
如若转载,请标明出处,谢谢!
0 绘图准备
为了方便之后的图片加载和显示,这里之间将前面对图片处理的函数封装,并保存为imutils.py文件,其中代码如下(以下代码在图片平移操作的过程中已经讲解过了)
import matplotlib.pyplot as plt
import cv2
import numpy as np
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image = cv2.imread(image)
image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
1 绘制直线
首先准备一个纯色的背景(这里以黑色举例),(300,300,3)是指定的高、宽以及通道数,可以通过shape的查看形状大小,调用封装好的show函数直接显示图片,可以发现黑色的背景已经创建完成了
绘制直线,需要明确的必选基本属性:画布,直线颜色,绘制起点,绘制终点;可选的属性:线的宽度,类型等
比如修改起止点的位置,颜色,添加粗细,如下
2 绘制矩形
和绘制直线类似,但是起止点对应的意义不同,绘制矩形的时候起点对应的是矩形的左上顶点,终止点是对应矩形的右下顶点
有意思的是:如果对于粗细的参数设置为-1时,代表着填充的效果,也就是绘制实心的矩形,如下
3 绘制圆形
圆形有圆心和半径的属性,结合画布和颜色就可以绘制,为了清晰的展示效果,这里绘制多个同心圆,如下(圆心是在画布的中心位置,半径是从0到150,颜色为白色,线条粗细为2)
此外还可以做一些好玩的,比如设定随机的圆心、半径和颜色,最后以填充的方式显示出来,如下,这里注意一下对应参数要传递的数据格式
4 图像翻转
这个和之前介绍的图像的旋转是不一样,具体的区别通过查看图片最终的结果就可以清晰地掌握了
读入原图片
水平翻转(参数为正整数)
垂直翻转(参数为0)
水平垂直翻转(参数为负整数)
5 图像裁剪
图片的裁剪有点类似二维数组的切片了,第一个逗号前的为行(纵坐标方向延伸),逗号后的为列(横坐标方向上延伸)