Python画国徽代码
Python作为一种高级编程语言,在图像处理方面也有丰富的应用。其中,绘制国徽是一项颇受欢迎的任务。下面,我们将一步一步地演示Python如何绘制一幅具有中国特色的国徽。
1. 导入所需库
首先,我们需要导入Python所需的库,包括numpy、cv2和matplotlib。numpy是Python的数值计算扩展包,cv2是Python中基于开源计算机视觉库OpenCV实现的图像处理库,而matplotlib是针对Python 2D图形的绘图库。
```python
import numpy as np
import cv2
from matplotlib import pyplot as plt
```
2. 绘制最外层红色圆形
在画国徽时,最先绘制的是其最外侧的圆形,圆形的颜色为红色。
```python
img=np.zeros((500,500,3),np.uint8) #创建空白图片
img[:]=255,255,255 #将图片背景设置为白色
cv2.circle(img,(250,250),200,(0,0,255),-1) #绘制红色圆形
plt.imshow(img) #展示图片
plt.show()
```
3. 绘制24颗黄色五角星
国徽中共有24颗黄色五角星,它们的位置固定,采用坐标点的方式绘制。下面是绘制24颗黄色五角星的代码。
```python
x=250
y=250
r=100
angle=0
for i in range(24):
dst_x=int(x+r*np.cos(angle*np.pi/180))
dst_y=int(y+r*np.sin(angle*np.pi/180))
if i%2==0:#第一种黄色
color=(0,255,255)
else:#第二种黄色
color=(0,255,212)
pts=[]
for j in range(5):
angle_1=angle+72*j
pts.append([dst_x-int(10*np.cos(angle_1*np.pi/180)),dst_y-int(10*np.sin(angle_1*np.pi/180))])
pts.append([dst_x-int(40*np.cos(angle_1*np.pi/180)),dst_y-int(40*np.sin(angle_1*np.pi/180))])
pts=np.array(pts,np.int32)
pts=pts.reshape((-1,1,2))
cv2.fillPoly(img,[pts],color)
angle+=15 #旋转角度
plt.imshow(img) #展示图片
plt.show()
```
4. 绘制中央的五角星
国徽中央有一颗较大的黄色五角星,该五角星的坐标点需要计算。
```python
x=250
y=250
r=90 #五角星所在的圆的半径
angle=0
dst_x=int(x+r*np.cos(angle*np.pi/180))
dst_y=int(y+r*np.sin(angle*np.pi/180))
pts=[]
for j in range(5):
angle_1=angle+72*j
pts.append([dst_x-int(50*np.cos(angle_1*np.pi/180)),dst_y-int(50*np.sin(angle_1*np.pi/180))])
pts.append([dst_x-int(18*np.cos((angle_1+36)*np.pi/180)),dst_y-int(18*np.sin((angle_1+36)*np.pi/180))])
pts=np.array(pts,np.int32)
pts=pts.reshape((-1,1,2))
cv2.fillPoly(img,[pts],(0,0,255))
plt.imshow(img) #展示图片
plt.show()
```
5. 绘制国徽内部的轮廓线
国徽内部还有一些轮廓线,需要绘制。具体绘制方法如下:
```python
cv2.circle(img,(250,250),130,(0,0,255),15) #绘制内圆边框
cv2.circle(img,(250,250),120,(0,0,255),15) #绘制内圆
cv2.rectangle(img,(50,120),(450,380),(0,0,255),15) #绘制矩形
cv2.rectangle(img,(80,150),(420,350),(0,0,255),15) #绘制矩形
cv2.circle(img,(250,250),60,(0,0,255),15) #绘制内圆
plt.imshow(img) #展示图片
plt.show()
```
至此,我们已经完成了Python绘制国徽的任务。
Python网络数据采集中的错误
Python的网络数据采集在制作爬虫程序时尤为常见,但在采集过程中,可能会遇到一些错误。下面,我们列举一些常见的网络数据采集错误,并讲解其原因和解决方法。
1. 403 Forbidden
这种错误是由于目标网站拒绝了爬虫程序访问而导致的。此时,需要在请求头中添加User-Agent信息,以使程序模拟浏览器进行访问。代码如下:
```python
import requests
url='http://www.example.com'
header={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response=requests.get(url,headers=header)
```
2. 404 Not Found
这种错误是由于目标网站上访问的文件或网页不存在而导致的。此时,需要检查您是否访问了正确的URL,以及该URL是否已更改。
3. 网络延迟
这种错误是由于网络环境导致数据采集过程中的超时而导致的。解决方法是设置一个延迟时间,以使程序在等待一段时间后再次尝试访问。代码如下:
```python
import requests
import time
url='http://www.example.com'
timeout=30
while True:
try:
response=requests.get(url,timeout=timeout)
break
except:
time.sleep(5) #等待5秒后再次尝试访问
```
4. 数据解析错误
这种错误是由于爬虫程序采集的数据缺少某些字段或数据格式不正确而导致的。此时,需要检查您的爬虫程序代码,并尝试从另一个源上采集数据来进行比较与确认。
5. 防爬虫策略
这种错误是由于目标网站对于爬虫程序进行限制而导致的。此时,可以尝试使用代理IP、更改请求头中的User-Agent信息、使用Cookie等方式继续进行数据采集。
综上,针对Python网络数据采集中出现的错误,我们需要更深入地了解每种错误出现的原因及解决方法,并根据实际情况进行针对性的处理。只有这样,我们才能更好地进行Python网络数据采集工作。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复