弹幕君,别挡着我看小姐姐!

python b站自动签到_B站自动操作脚本(投币点赞分享视频,直播签到,获取银瓜子,自动转发抽奖,漫画APP签到)... [Python] 纯文本查看 复制代码# -*- coding: utf-8 -*-import requestsimport jsonimport reclass Biliapi(object):"B站API操作"__headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like ... 阅读详情

某天代码写得老眼昏花,去B站上摸鱼,突然发现奇怪的现象:

图片

哟呵,B站竟然做了视频前景提取,把弹幕藏到画面人物的后面。识别效果还意外地不错呢。

然后又翻了下,发现这是个叫做“智能防挡弹幕”的功能,我只在部分舞蹈区的视频里找到了开关。

图片

我不知道B站是怎么实现的,但我脑中闪过一个想法:能不能用 Python 实现?简单搜索了一下“python 前景提取”,发现 OpenCV 的 GrabCut 提供了这样的功能。

图片

那么剩下的就好办了。

先放最终实现效果(完整代码见文末):

图片

再用 GrabCut,提取出图片上的前景部分。核心代码:

import numpy as npimport cv2mask = np.zeros(img.shape[:2],np.uint8)bgdModel = np.zeros((1,65),np.float64)fgdModel = np.zeros((1,65),np.float64)rect = (10, 10, img.shape[1]-10, img.shape[0]-10)cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT)

img 是输入图像,mask 是输出图像,是一个二值化的蒙版(mask),rect 是待检测区域,后面的数字 5 是迭代次数,其他的参数照搬例子即可。输出结果:

图片

有了蒙版之后,就可以对图像进行运算。分别取出带弹幕图像的背景部分,和原图像的前景部分,两个加一起,就是我们最终需要的效果:

核心代码:

img = img * (1-mask)[:,:,np.newaxis] + img * mask[:,:,np.newaxis]

基本功能这样就完成了。将图片的处理方法放到视频中的每一帧,再加上弹幕飞过的效果,就完成了 Python 版的智能防挡弹幕。

更多的一些细节:

1、前景提取的速度比较慢,为了能达到实时效果,我在提取前景时,将图片缩小,获取蒙版之后,再将其放大至原尺寸。蒙版本身的分辨率几乎不影响最终效果,但通过这个方法就可以做到实时。

2、每一帧的处理速度有快有慢,为了稳定帧率,我加入了每帧时间的计算,如果时间不足设定时长,就 sleep 剩下的时间。

3、一些过渡帧的识别效果会比较差,导致中间少数蒙版出现类似“跳帧”的效果。为了平滑这些帧,我在程序里记录每一帧蒙版中前景像素的数量,如果当前帧与之前 20 帧的平均值差距超过 50%,那就认为这一帧的前景提取不合格,直接使用之前的蒙版。

4、为了模拟实际效果,我还去B站抓了下视频相关的弹幕,它是在一个 xml 文件中:

https://api.bilibili.com/x/v1/dm/list.so?oid=9931722

图片

因为只有一个文件,我就直接通过 SublimeText 的正则替换功能对数据进行了整理,没额外再写爬虫和处理的代码。这是个很实用的小技巧。

代码中我只使用了弹幕内容和时间两个值。当到达某条弹幕时间,就把它放入激活列表,添加到图像右侧,随机高度和颜色,然后每一帧将横向位置向左移动。直到图像左侧外部后,从激活列表中移除。

最终效果演示视频:

极乐净土 - OpenCV防挡弹幕实现

作为一个 demo,效果勉强可以接受吧。对这种没有预设背景信息,完全靠图像层面计算的话,准确率是不会太高的。所以只有这种背景单一、前景明显的视频效果还不错。而且很明显,白色衣服的效果就不太行。不知道B站的实现方法是怎样,是否有人工干预,是否有预计算。我觉得有的可能性还是很大的,因为毕竟只有少量视频开启了“智能防挡”。如果有了解情况的,欢迎留言。完整代码领取请点击

在这里还是要推荐下我自己建的Python学习群:609616831,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕 年初时我们用数据解读了几部热度高,但评分差强人意的国产剧,而最近正午阳光带着两部新剧来了,《我是余欢水》和《清平乐》,截止到目前为止,这两部剧在豆瓣分别为7.5分和7.9分,算是非常高的评分了。 今天我们就来跟大家聊一聊其中这部《我是余欢水》。 01 这些年 我们追过的 正午阳光作品 都说作为“国剧门脸”,正午阳光出品,必属精品,每一部都... 阅读详情

相关推荐

One cut in grabcut的OpenCV实现代码以及工程

说明: http://blog.youkuaiyun.com/wangyaninglm/article/details/50074613 One cut in grabcut(grabcut算法的非迭代实现?) 本文针对交互式图像分割中的图割算法,主要想翻译一篇英文文献。不足之处请大家指正。 这是博主近期看到的效果最好,实现最简单,运算时间最短的交互式图割算法,而且由于是发明图割算法实验室原班人马的文章和代码,所以非常值得研究。

img = img1*mask + img2*(1-mask) How do that ?

原文地址:http://answers.opencv.org/question/160599/img-img1mask-img21-mask-how-do-that/如何提高一个简单操作的速度?最后的multiply方法很有启示。 Hello, I would like merge two color images with an image mask. img1 and img2 are col...

weixin_33699914的博客 331

python+selenium +Firefox 实现bilibili(B站)自动登陆

2020年12月刚写的脚本,bilibili未对webdriver进行检测,直接用selenium+打码平台实现自动登录。脚本中修改用户名密码即可直接运行。PS:运行环境请自行装好

b站python弹幕签到_B站智能防挡弹幕的一种python实现

某天代码写得老眼昏花,去B站上摸鱼,突然发现奇怪的现象:哟呵,B站竟然做了 视频前景提取 ,把弹幕藏到画面人物的后面。识别效果还意外地不错呢。然后又翻了下,发现这是个叫做“ 智能防挡弹幕 ”的功能,我只在部分舞蹈区的视频里找到了开关。我不知道B站是怎么实现的,但我脑中闪过一个想法:能不能用 Python 实现?简单搜索了一下“ python 前景提取 ”,发现 OpenCV 的 GrabCut 提...

weixin_39847887的博客 236

小白快速上手 labelme:新手图像标注详解教程

本教程旨在帮助初次接触 labelme 的用户快速上手该软件,掌握基本操作与标注流程,为语义分割数据集做准备。

小白一枚~ 2万+

使用 C# 实现大华监控摄像头的控制与数据处理

本文介绍了使用C#调用大华SDK(DHNetSDK.dll)开发监控系统的方法。主要内容包括:开发准备、DLL引用设置、SDK初始化与设备登录、视频预览窗口嵌入、云台控制、抓图录像等核心功能实现。通过P/Invoke技术封装SDK接口,开发者可以快速构建具有视频监控、设备控制功能的C#应用程序。文中还提供了代码示例、常见问题解决方案,以及视频帧智能分析的扩展建议,为开发大华监控系统的二次应用提供了完整的技术指南。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1286

B站不挡脸弹幕前端是如何实现的?

相信最近有很多B站的用户都注意到了不挡脸的弹幕,打开一则视频右下角的“智能防挡弹幕”功能后,弹幕就不会再覆盖人像,而是呈现从人体身后穿过的效果。

m0_64460287的博客 2226

[AbutionGraph] 报表制作-使用Grafana动态可视化知识图谱指标

使用开源报表可视化工具Grafana实时监控时序知识图谱数据仓库AbutionGraph中的数据,实时性报表查询, 满足单次百万千万级的数据查询,毫秒级查询延迟,亚秒级对千亿数据量汇总统计,每日过亿报表查询/多维分析/日志分析等数据指标...

图特摩斯科技-博客 4281

宅男福利!我用Python做了一个B站跳舞的小姐姐,满屏的美腿!

点上方蓝色“菜鸟学Python”,选“星标”公众号重磅干货,第一时间送到 周末在家,天气好冷好冷啊,我们这边都下雪了!宅在家里没有啥事情,于是炖了只老母鸡,补补身子。一边炖鸡汤,一边用P...

cainiao_python的博客 2万+

【scp】Windows 下scp报错 bad permissions

Windows 下使用 SSH 连接报 Bad owner or permissions on C:\\Users\\Administrator/.ssh/config 错误问题解决 C:\Users\Administrator>scp -P 66666 D:\1111.pdf zzd@58.213.45.xx:/home/zzd/ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING:...

走在搬砖的路上! 4158

金智维KRPA实战:Excel自动化数据处理全流程解析

本文详细解析了金智维KRPA在Excel自动化数据处理中的全流程应用,涵盖COM接口和文件读写两种核心技术方案,以及销售报表生成、数据清洗和可视化仪表盘等实战案例。通过企业级应用的异常处理、性能优化和安全合规实践,显著提升数据处理效率和准确性,助力企业降本增效。

weixin_30329623的博客 598

如何看待网络直播中的弹幕文化?

作者:程毅南 全文共 4845 字 2 图,阅读需要 10 分钟 ———— / BEGIN / ———— 我觉得研究直播弹幕文化是有意义的,因为: 1. 直播弹幕为一对多信息输出 提供了即时反馈,好的弹幕文化可以使内容得到提升。 想象一下领导在台上讲话,传统形式讲者获得的反馈有限,无外乎笑声、掌声、皮鞋、臭鸡蛋,很少有观众觉得好还送钱上来,或者有观众直接站

人人都是产品经理 3938

EDA虚拟机分享2020版本(Synopsys2020)

EDA虚拟机分享

亦安的数字小站 9198

爬虫数据云词图片怎么做?小姐姐教你用python做B站弹幕爬虫,并进行数据分析生成词云

hello大家好,我是你们的可爱丸,大家平时在B站看视频时有没有开弹幕的习惯呢?如果不把视频从头看到尾,那么多弹幕,我们怎么快速的知道大家都说了些什么并且持有什么观点呢? 今天小姐姐就教你做一个简单的B站弹幕爬虫,让你在没有观看视频的情况下就能预先知道大家都在弹幕里面评论了什么,并且什么是大家说的最多的词语。话不多说,现在我们就开始学习B站弹幕的python爬虫吧! 【效果预览】 【详细教程...

可爱程序员 1072

PCL 中实现平面模型分割【2026最新版】

RANSAC分割平面。博客长期更新,最近一次更新时间为:2026年5月4日。

点云侠的博客 38万+

【AIZ智能体】Codex 全能AI助手从部署到使用实战操作详解

Codex 全能AI助手从部署到使用实战操作详解

congge 2990

两串锂电池主动均衡方案:从MP2642GR-Z到R7FA8M1AHECBD的实战解析

在储能与备用电源系统中,电池组的一致性管理是决定安全与寿命的关键。锂电池串联使用时,电芯间的电压差异会随温度、内阻和自放电率变化逐步放大,若不加以约束,充电时易过充、放电时容量无法释放,长期甚至引发安全隐患。主动均衡作为一种能量转移方案,通过电感或电容将高电压电芯的能量搬运至低电压电芯,兼顾效率与温升控制,成为电池管理系统中的核心技术。本文结合一款便携储能设备的设计实践,围绕双向Buck-Boost拓扑、ADC采样校准、均衡状态机设计以及电感参数估算,探讨如何在主控芯片与集成功率器件配合下,构建一套稳定、低

weixin_33985507的博客 738

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python分析《青你2》67万条弹幕,看看有没有你Pick的小姐姐

CDA数据分析师 出品作者:泽龙、Mika数据:真达后期:泽龙【导语】:今天我们来聊一聊选秀节目《青春有你2》,看看有没有你pick的小姐姐。获取数据代码:扫描下方公众号回复...

python爬虫人工智能大数据 494

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

利用Python做一个小姐姐词云跳舞视频

点击上方蓝色小字,关注“涛哥聊Python”重磅干货,第一时间送达来源:修炼Python每周三个人直播,想和我聊天的欢迎来约‍‍‍‍‍‍‍朝朝暮暮里,祝愿我们每个人都能沉淀过往,迎来新光,...

涛哥聊Python 796

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

我摊牌了!我用Python帮B站的小姐姐配好看的字幕!

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料、代码以及交流解答点击即可加入 对于很多B站的忠实小伙伴们来说,在B站上看各个Up主们为大家分享各种内容是一件非常幸福的事情,可是大家也会遇到视频中没有提供弹幕的尴尬局面,比如大家在B站看小姐姐的时候,经常会遇到没有字幕的情况,这种听不清小姐姐说什么,又没有弹幕加以解释的情况,会很别扭~~ .

【优快云官方推荐】 703

程序员幸福时刻,用Python做了一个B站跳舞的小姐姐,满屏的美腿!

周末在家,天气好冷好冷啊,我们这边都下雪了!宅在家里没有啥事情,于是炖了只老母鸡,补补身子。 一边炖鸡汤,一边用Python码些好玩的脚本。辛苦了一个周末,菜鸟哥写了一个好玩的小脚本,赶紧跟大家分享一下。 B站上的漂亮的小姐姐真的好多好多,今天我们来玩一个来抓取B站上跳舞的小姐姐视频,并利用视频中大家的弹幕来绘制一个跳动弹幕的舞蹈视频,非常炫酷~~一起来看看吧。 01.弹幕抓取 首先,我们选定一个弹幕比较多的小姐姐舞蹈视频,并下载该视频,同时,利用以下程序来抓取小姐姐视频中的弹幕信息。 上述程序中,首先.

weixin_46737755的博客 1779
上一篇: Python竟然能做这种进度条,看完别说WC!
下一篇: 什么?女朋友生气哄不好?那是你没有这款神器!
python阿喵
博客等级 码龄6年 169粉丝 127原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值