Python 能做出哪些有意义的事情?

Python 凭借语法的易学性,代码的简洁性以及类库的丰富性,赢得了众多开发者的喜爱。下面我们来看看,用不超过10行代码能实现些什么有趣的功能

OpenCV

OpenCV 作为最为著名的计算机视觉工具,基于它我们也可以做很多有趣的事情 首先我们安装好 OpenCV 库

pip install opencv-python

猫脸识别

在当今社会,谁还没有一个两个猫主子呢,高冷的猫咪往往会得到人们特殊的爱戴!

我们也习惯了人脸识别,今天就通过几行代码来看看猫脸识别是怎么的呢

首先我们到安装目录下提取锚链识别 XML 分类器,具体目录如下

C:\Python3\Lib\site-packages\cv2\data

可以看到有如下很多分类器图片

我们复制 haarcascade_frontalcatface.xml 到自己的项目下即可

# 待检测的图片路径
ImagePath = './cat/cat.jpg'

# 读取图片
image = cv2.imread(ImagePath)
# 把图片转换为灰度模式
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 探测图片中的猫脸
# 获取训练好的猫脸的参数数据,进行猫脸检测
face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalcatface.xml')
faces = face_cascade.detectMultiScale(gray,scaleFactor=1.15,minNeighbors=5,minSize=(3, 3))

search_info = "Find %d face."%len(faces) if len(faces) <= 1 else "Find %d faces."%len(faces)

# 绘制猫脸的矩形区域(红色边框)
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x,y), (x+w,y+h), (0,0,255), 2)

# 显示图片
# cv2.imshow('Find faces!', image)
# cv2.waitKey(0)
cv2.imwrite("./cat/cat2.jpg", image)

Output:图片

获取摄像头人脸

我们编写一个获取实时动态视频流的代码,实时获取当中的人脸信息

detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)

while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = detector.detectMultiScale(gray, 1.3, 5)
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)

    cv2.imshow('frame', img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

注意这里使用的分类器是 haarcascade_frontalface_default.xml,可不要用错哦

Output:

自行在自己的电脑上尝试下哦~

快速生成动图

在很多时候,尤其是在线聊天时,输了什么也不能输掉斗图啊,下面的代码可以快速生成动图,在和朋友的斗图当中,得胜的把握又增加了

import imageio


image_list = ['image/1.jpg','image/2.jpg', 'image/3.jpg', 'image/4.jpg']
gif_name = "dongtu.gif"
duration = 1
frames = []
for image_name in image_list:
    frames.append(imageio.imread(image_name))
imageio.mimsave(gif_name, frames, "GIF", duration=duration)

Output:图片

动图二维码

二维码在我们的生活当中实在是太重要了,收付款、快速进入网站,访问各种统计信息等等,下面就来快速生成一个有趣的动图二维码

我们使用的图片如下图片

代码如下

from MyQR import myqr
url = "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5NDcyOTg4MA==#wechat_redirect"
myqr.run(words=url,version=3,
         picture="4.gif",colorized=True,save_name="luobodazahui.gif",
         save_dir="./")

ftp 服务器

可能很多人不知道,通过 Python 几行简单代码,我们可以快速实现一个简易的 ftp 服务器,这样在局域网内进行文件传输不再发愁啦!

代码非常简单,直接运行 Python 自带的 http 服务器即可

python -m http.server 8090

Output:图片

接下来我们访问本地 IP + 端口8090图片

很强大,很简单,很好用!

字符画

字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表现一种颜色,字符的种类越多,可以表现的颜色也越多,图片也会更有层次感

我们只需要短短几行代码,就可以完成字符画的制作

我们使用的图片如下图片

代码如下

IMG = "3.jpg"
WIDTH = 80
HEIGHT = 40
OUTPUT = "./ascii/ascii.txt"

ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

# 将256灰度映射到70个字符上
def get_char(r,g,b,alpha = 256):
    if alpha == 0:
        return ' '
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

    unit = (256.0 + 1)/length
    return ascii_char[int(gray/unit)]

im = Image.open(IMG)
im = im.resize((WIDTH,HEIGHT), Image.NEAREST)

txt = ""

for i in range(HEIGHT):
    for j in range(WIDTH):
        txt += get_char(*im.getpixel((j,i)))
    txt += '\n'

print(txt)

#字符画输出到文件
with open(OUTPUT,'w') as f:
    f.write(txt)

Output:图片

好了,这就是今天分享的内容,如果喜欢,就点个吧~

推荐文章

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

在这里插入图片描述

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

长按关注

猜你喜欢

转载自blog.csdn.net/qq_34160248/article/details/124292218