用Python字符串的方式看黑人抬棺,我的快乐就这么简单!

单片机开发板上的蜂鸣器--------黑人抬棺 使用的前提, 单片机是stc89c52, 晶振是12.000 #include <REGX52.H> #include “Delay.h” #include “time.h” sbit Buzzer=P1^5; unsigned int pinlv[]= {0,63628,63731,63835,63928,64021,64103,64185, 64260,64331,64400,64463,64524,64580,64633, 64684,64732,64777,64820,64860,64 阅读详情

单纯的我,总会有很多快乐

首先先看看成品:

不多说啥废话了,直接给代码吧:

import cv2

import subprocess

from moviepy.editor import *

from PIL import Image,ImageFont,ImageDraw

import os

from cv2 import VideoWriter, VideoWriter_fourcc, imread, resize

def get_char(r,g,b,alpha = 256):

ascii_char = list("#RMNHQODBWGPZ*@$C&98?32I1>!:-;. ")

if alpha == 0:

return ''

length = len(ascii_char)

gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

unit = (256.0+1)/len(ascii_char)

return ascii_char[int(gray/unit)]

 

def video_to_pic(vp,video_path):

number = 0

if vp.isOpened():

video = VideoFileClip(video_path)

audio = video.audio

audio.write_audiofile(video_path.split(".")[0]+".mp3")

r,frame = vp.read()

if not os.path.exists('cache_pic'):

os.mkdir('cache_pic')

os.chdir('cache_pic')

else:

r = False

while r:

number += 1

cv2.imwrite(str(number)+'.jpg',frame)

r,frame = vp.read()

print('\n由视频一共生成了{}张图片!'.format(number))

os.chdir("..")

return number, video_path.split(".")[0]+".mp3"

 

 

def img_to_char(image_path,raw_width,raw_height,task):

width = int(raw_width/ 6)

height = int(raw_height / 15)

im = Image.open(image_path).convert('RGB')#必须以RGB模式打开

im = im.resize((width,height),Image.NEAREST)

txt = ''

color = []

for i in range(height):

for j in range(width):

pixel = im.getpixel((j, i))

color.append((pixel[0],pixel[1],pixel[2])) #将颜色加入进行索引

if len(pixel)==4 :

txt +=get_char(pixel[0],pixel[1],pixel[2],pixel[3])

else:

txt +=get_char(pixel[0],pixel[1],pixel[2])

txt += '\n'

color.append((255,255,255))

 

im_txt = Image.new("RGB",(raw_width,raw_height),(255,255,255))

dr = ImageDraw.Draw(im_txt)

font = ImageFont.load_default().font

x,y = 0,0

font_w,font_h=font.getsize(txt[1])

font_h *= 1.37 #调整字体大小

for i in range(len(txt)):

if(txt[i]=='\n'):

x += font_h

y = -font_w

dr.text((y,x),txt[i] ,fill = color[i])

y+=font_w

os.chdir('cache_char')

im_txt.save(str(task)+'.jpg')

os.chdir("..")

return 0

 

 

def star_to_char(number,save_pic_path):

if not os.path.exists('cache_char'):

os.mkdir('cache_char')

img_path_list = [save_pic_path + r'/{}.jpg'.format(i) for i in range(1,number+1)] #生成目标图片文件的路径列表

task = 0

for image_path in img_path_list:

img_width , img_height = Image.open(image_path).size #获取图片的分辨率

task += 1

img_to_char(image_path, img_width , img_height, task)

print('{}/{} is finished.'.format(task,number))

print('=======================')

print('All image was finished!')

print('=======================')

return 0

 

def jpg_to_video(char_image_path,FPS):

video_fourcc=VideoWriter_fourcc(*"MP42") # 设置视频编码器,这里使用使用MP42编码器,可以生成更小的视频文件

char_img_path_list = [char_image_path + r'/{}.jpg'.format(i) for i in range(1,number+1)] #生成目标字符图片文件的路径列表

char_img_test = Image.open(char_img_path_list[1]).size #获取图片的分辨率

video_writter= VideoWriter('video/new_char_video.mp4' , video_fourcc , FPS , char_img_test)

load = 'loading'

count = 0 #用来清空load进度条的计数

for image_path in char_img_path_list:

img = cv2.imread(image_path)

video_writter.write(img)

load = load + '.'

count += 1

if count % 50 == 0 :

load = 'loading'

print()

print('\r',load,end='')

video_writter.release()

print('\n')

print('=======================')

print('The video is finished!')

print('=======================')

return 'video/new_char_video.mp4'

 

def video_add_mp3(file_name, mp3_file):

outfile_name = file_name.split('.')[0] + '-finish.mp4'

subprocess.call('ffmpeg -i ' + file_name

+ ' -i ' + mp3_file + ' -strict -2 -f mp4 '

+ outfile_name, shell=True)

 

if __name__ == '__main__':

video_path = 'video/video.mp4'

save_pic_path = 'cache_pic'

save_charpic_path = 'cache_char'

 

vp = cv2.VideoCapture(video_path)

number, mp3_file = video_to_pic(vp,video_path)

FPS = vp.get(cv2.CAP_PROP_FPS)

star_to_char(number , save_pic_path)

vp.release()

file_name = jpg_to_video(save_charpic_path,FPS)

video_add_mp3(file_name, mp3_file)

还是很有趣的!

 

黑人抬棺邀请您语音通话源码 最近很火的黑人抬棺,源码纯html,本地即可运行查看,源码上传服务器,浏览器打开也可以使用,挺不错的,邀请语音电话界面做的很逼真! 立即下载

相关推荐

Python编曲实践(七):整整一百行Python代码写出黑人抬棺梗曲《Astronomia》的旋律

前言 黑人抬棺梗如今可以说是火爆全球,而原版视频的背景音乐《Astronomia》也开始爆火,正在不断被油管的音乐播主用各种乐器花式cover: 受此超级巨梗的影响,本博主也打算跟一跟风,用整整百行Python代码写出这首《Astronomia》的旋律精髓,实现过程使用到了我之前根据 Mido 库的Track类进行扩展而实现的 MidiTrackExtended 类,若您想尝试一下的话可以下载 midi_extended 这个目录并复制到项目目录下,便可以通过import操作将其导入到代码中。请注意,在运行代码前一定要安装好 Mido 和 pygame 这两个库!!!! 百行代码 下面是完整

简单实现视频转化为字符视频

最简单的从零实现正常视频转字符视频 把大象关进冰箱需要三步 将视频按帧提取为图片序列 将图片依次转化为字符图片 将字符图片按帧重新合称为视频 环境配置 本项目主要利用视频处理库 moviepy 来读取处理视频,利用图片处理库 PIL 来处理图片(视频的每一帧) pip install moivepy # 也可利用万能安装模板来加速 pip --default-timeout=100 install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple

qq_40491305的博客 1880

Unity3D实战:5分钟搞定RTSP监控视频播放(附完整代码)

本文提供了一套在Unity3D中快速集成RTSP监控视频播放的实战方案。通过采用LibVLCSharp for Unity这一成熟稳定的跨平台中间件,开发者可以轻松实现RTSP流的解码与渲染,并附有完整的C#代码示例,帮助用户在5分钟内完成集成,适用于智慧园区、安防监控等3D可视化场景。

weixin_29001655的博客 192

Python-视频处理-视频转字符动画(图像处理 cv2 moviepy Image)

【代码】Python-视频处理-视频转字符动画(图像处理 cv2 moviepy Image)

小小黑的博客 960

SAP PP后台配置实战:从BOM到工艺路线的全流程解析

本文详细解析了SAP PP模块后台配置的全流程,从BOM到工艺路线的关键步骤与实战技巧。通过分享生产计划、工作中心能力计划等核心配置经验,帮助企业优化生产管理流程,提升SAP系统实施效率。特别针对BOM配置、工艺路线设置等常见问题提供解决方案。

weixin_29300931的博客 1010

避坑指南:LVGL在Arduino环境编译报错?3步搞定lv_conf.h路径问题(附ST7789屏幕调试技巧)

本文详细解析了在Arduino环境中配置LVGL图形库时,如何解决常见的“lv_conf.h file not found”编译报错问题。通过三步法:定位并复制模板文件、启用核心配置并指定路径、配置基础参数,从根本上解决路径问题。文章还结合ST7789屏幕驱动,分享了使用TFT_eSPI库进行显示适配、内存优化及背光控制等实战调试技巧,帮助开发者建立清晰、可维护的嵌入式UI工程基础。

lake5的博客 860

怎样用python黑人家电脑_用Python字符串的方式看黑人抬棺,我的快乐就这么简单!...

import cv2import subprocessfrom moviepy.editor import *from PIL import Image,ImageFont,ImageDrawimport osfrom cv2 import VideoWriter, VideoWriter_fourcc, imread, resizedef get_char(r,g,b,alpha = 256):...

weixin_39839018的博客 355

多标签损失之Hamming Loss(PyTorch和sklearn)、Focal Loss、交叉熵和ASL损失

多标签损失

wuli_xin的博客 4462

用字符串的方式看黑人抬棺,我的快乐就这么简单

单纯的我,总会有很多快乐 首先先看看成品: 不多说啥废话了,直接给代码吧: import cv2 from moviepy.editor import * from PIL import Image,ImageFont,ImageDraw import os from cv2 import VideoWriter, VideoWriter_fourcc, imread, resize def g...

一名新生程序员的日常 2万+

Xilinx Vivado vitis IDE launch Failed \ Web installer client Obsolete 怎么办

Xilinx vitis_IDE failed Web installer client Obsolete

weixin_44820962的博客 8645

基于STM32设计的计算器(实现基本运算)

当前文章介绍的是STM32+LCD触摸屏设计的一个触摸计算器功能,实现基本的加减乘除,二进制转换显示等功能。LCD屏使用的是3.5寸带触摸屏的显示屏,方便操作屏幕,MCU采用STM32F103ZET6。

8817

用Python字符串的方式看黑人抬棺,我的快乐就这么简单

单纯的我,总会有很多快乐 首先先看看成品: 不多说啥废话了,直接给代码吧: 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:961562169 import cv2 import subprocess from moviepy.editor import * from P

Python_sn的博客 230

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘解决方案

本文主要介绍了AttributeError: module ‘lib’ has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK’解决方案,希望能对使用python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

python什么意思g_python 这几段代码到底是什么意思?(短代码) 小弟在学习中

1、ascii_char=list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~i!lI;:,\"^`'.")defget_char(r,b,g,alpha=256):ifalpha==0:return''length=len(ascii_char)gray=int...1、ascii_char = list("$@B%8&WM#...

weixin_39668282的博客 372

全志T527-TP9930-Camera

TP9930 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 BT656/BT1120 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3245

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python实现图片转字符画

话不多说直接上代码 需要执行pip install pillow 安装图片处理模块 from PIL import Image IMG = "51_616.jpg" ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #图片转字符 #将25...

Mr. 亮先生的博客 368

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python图片转彩色字符代码_python实现图片转字符画的完整代码

前言最初是在实验楼看到的一个小实验实验楼-Python 图片转字符画原文是需要通过命令行运行程序这里改为直接运行,需要固定一些参数运行平台: WindowsPython版本: Python3.6IDE: Sublime Text1、实验准备pillow库的安装pip install pillow2、实验原理字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表现一种颜色,字符的...

weixin_34334554的博客 1093

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【云驻共创】华为云AI之用Python定制我的《本草纲目女孩》

文章目录前言1.华为云ModelArs-Notebook1.1 Jupyter Notebook是什么1.2 JupyterLab是什么1.3 什么是Moxing2.Python-Opencv一、华为云AI之用Python定制我的“本草纲目女孩”1.案例实现流程2.案例实操2.1 本机环境2.2 安装对应的python包 前言 1.华为云ModelArs-Notebook ModelArts集成了基于开源的Jupyter Notebook和JupyterLab,可为您提供在线的交互式开发调试工具。您无需关

愚公智库 1万+

Python写实用小工具-实现图片转字符画

学习python的基础应用及pillow库的使用,Python写实用小工具-实现图片转字符画

ln_ydc的专栏 439

python编程*三角形图形创意图片_python实现趣味图片字符化

本文实例为大家分享了python实现趣味图片字符化的具体代码,供大家参考,具体内容如下主要使用PIL库先放效果图:代码如下:#coding=utf-8from PIL import Imageascii_char = list('MW$#@%&KERTYOJKLUIC{}*mnxgouic()\!~:;^·.')def get_char(r,b,g,alpha = 256):if alpha==0...

weixin_39953100的博客 540

python 不显示前几个字符_Python 图像转字符串显示

最近找了一个将图像灰度图转化位字符串输出显示的方法,编程语言python,导出文本。直接上源码:import cv2 # 字符串类型 ascii_char_all = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'. ") ascii_char = list(" -/1") ...

weixin_39827036的博客 253

emoji字符串 php,使用emoji字符组成任意汉字

使用emoji表情组成汉字或者简笔画,在微信、QQ的传播中甚广,就会想着要不自己也试着做出来吧.比如下图:一开始想到的实现方案就是: 首先将汉字转化成白底黑字的图片, 然后将图片根据灰度值映射成不同的字符打印在终端。前者文字转图片,使用常见的绘图库非常好实现(比如python的PIL库);工作量无非只是实现过程中慢慢调整排版, 以达到自己的预期效果.后者则是简单的映射关系而已: 将图片中像素点的灰...

weixin_39943442的博客 703

Python编程实例分析 Ⅱ

学习Python期间记录的一些实例和分析2 实例十一  绘制七段数码管 实例十二 科赫曲线绘制雪花 实例十三 分词统计--英文单词 实例十四 分词统计--中文词频 实例十五 将图像转换成为字符图

本末实验室 1479
上一篇: 使用OpenCV和Python构建运动热图视频!
下一篇: 如何通过Python分析中国演员排名?他第一你认可吗?
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值