Forwarded from dnaugsuz
绘制效率不高,毕竟是 PIL 和 OpenCV-python 合作,目前得靠一个 Numpy 中介,效率大概 12fps
而且绘制项目的集合虽然会提前算好 (x, y, color) 但具体流程是一个一个 ImageDraw 然后 text 上去…… 应该没有缓存和 SIMD 什么的优化
而且绘制项目的集合虽然会提前算好 (x, y, color) 但具体流程是一个一个 ImageDraw 然后 text 上去…… 应该没有缓存和 SIMD 什么的优化
Forwarded from dnaugsuz
呃……等等,我找个视频给你看
是很久以前的B站视频了,那时候我连 bash 都不会写
是很久以前的B站视频了,那时候我连 bash 都不会写
Forwarded from dnaugsuz
https://www.bilibili.com/video/av40029529
有点类似这种(不过不是…… 我之前看到那个质量很高,是中文字符组成而且不同时间有不同的字符组成)
貌似是 C# .NET 做的,据说绘制速度比较慢,彩色中文字符画。 可是 B 站搜不到 2019 年以前的结果了 而且只能搜到标题……
https://www.jijidown.com/video/av9725649
发现哔叽好像可以搜到很早以前的视频
有点类似这种(不过不是…… 我之前看到那个质量很高,是中文字符组成而且不同时间有不同的字符组成)
貌似是 C# .NET 做的,据说绘制速度比较慢,彩色中文字符画。 可是 B 站搜不到 2019 年以前的结果了 而且只能搜到标题……
https://www.jijidown.com/video/av9725649
发现哔叽好像可以搜到很早以前的视频
Bilibili
如果ilem的歌《鸽子》用 Python PIL 做字符画PV_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
本家 ilem《鸽子》 av39330059看到有几个UP主也做了Python PV(av39502477 av39546673 av39504056),但都是简单地打印歌词,所以我想换一种方式,用Python的PIL库做字符画拼出歌词。思路:1. 用 PIL 将文字转换成图片2. 用 PIL 将第1步生成的图片转换成字符画
Forwarded from dnaugsuz
草,原来绘制和矩阵处理天生不兼容 #CV #Python #visualize
反正我是熟悉 n m y x i j 那一套
可以把 for (i=0; i<n; i++) 套到 绘制程序里
我们只需要往 i, n 扩展一个 j, m 就可以处理项目和 y, x 不匹配的情况
然后矩阵处理又是另一种情况,没有 w,h 什么的
反正我是熟悉 n m y x i j 那一套
可以把 for (i=0; i<n; i++) 套到 绘制程序里
我们只需要往 i, n 扩展一个 j, m 就可以处理项目和 y, x 不匹配的情况
然后矩阵处理又是另一种情况,没有 w,h 什么的
Forwarded from dnaugsuz
https://github.com/sibojia/cv-uni-text
https://github.com/jrosebr1/imutils #Python #CV
噢,原来 PIL 已经可以被 CV 完全替代了啊 🤔
以前看 PIL 有的 filter 工具、kernel 之类和 convolution 都是 numpy 弄的,现在加上 cv 和 matplotlib 好像的确没必要用 PIL 了
PIL 的颜色模式也很头疼…… RGB, ARGB 也就算了,还有 I, L 这种奇奇怪怪的模式…… 色彩通道也叫 bands 而不是 channels
https://github.com/jrosebr1/imutils #Python #CV
噢,原来 PIL 已经可以被 CV 完全替代了啊 🤔
以前看 PIL 有的 filter 工具、kernel 之类和 convolution 都是 numpy 弄的,现在加上 cv 和 matplotlib 好像的确没必要用 PIL 了
PIL 的颜色模式也很头疼…… RGB, ARGB 也就算了,还有 I, L 这种奇奇怪怪的模式…… 色彩通道也叫 bands 而不是 channels
GitHub
sibojia/cv-uni-text
A c++ library of drawing unicode text with user-defined font based on OpenCV 2. - sibojia/cv-uni-text
./vcat_subtitle_imgs.py a.png frames/subtitle_*.png
再处理的时候,就可以利用许多成熟的工具,比如 GIMP 什么的进行后期处理再 OCR
a.png << ['frames/subtitle_0.png', 'frames/subtitle_4.png', 'frames/subtitle_5.png', 'frames/subtitle_8.png', 'frames/subtitle_10.png']..['frames/subtitle_299.png', 'frames/subtitle_300.png', 'frames/subtitle_301.png', 'frames/subtitle_302.png', 'frames/subtitle_303.png'] (298)结合这项特性,可以处理一些不打算提取时轴的硬骨头
再处理的时候,就可以利用许多成熟的工具,比如 GIMP 什么的进行后期处理再 OCR
a.png
3.7 MB
像这样,其实也可以直接在 OCR 的时候…不,是在拼接的时候直接存个 filename map 直接允许批量处理了再裁回来,再允许直接在这些帧文件上运行 OCR…… 还算简单,毕竟
ocrWithLocalMaxima 这个子程序被抽象为了一个方法,只需要弄一个把帧文件映射回 Frame 对象的程序即可 😂
duangsuse::Echo
a.png
已经支持
做法很简单,削掉 peak estimation (postprocessDifferences 和 findPeaks 都赋一个没 self 的 lambda)
然后拿 image inputs 映射到
然后创建 reducer (
--only-images 做法很简单,削掉 peak estimation (postprocessDifferences 和 findPeaks 都赋一个没 self 的 lambda)
然后拿 image inputs 映射到
Frame(no, img, 0) 然后创建 reducer (
ExtractSubtitle.DefaultOcrFold) 、 ocrWithLocalMaxima(frames, reducer) 、 reducer.finishAll() 完事Forwarded from Aelita Lyoko
视频图像是差分压缩差分渲染的,然而可能弹幕的渲染被放在图像变化区域渲染之前了,就导致变化区域的图像盖住了弹幕