V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
shinonome
V2EX  ›  Python

一个图片上有逐渐透明的文字,我要如何找到文字消失时的图片呢

  •  
  •   shinonome · 2023-04-16 09:28:56 +08:00 · 2733 次点击
    这是一个创建于 624 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文字是不断的变浅然后重新出现,我希望找到文字不遮挡时的截图

    本来以为取白色最少的就好,后来发现文字是透明的,背景是什么颜色文字的颜色区间也变了

    文字出现和消失的时间是一个区间,也没办法通过定时间隔来找

    萌新就失去了办法

    文字示例

    14 条回复    2023-04-17 11:13:19 +08:00
    renmu
        1
    renmu  
       2023-04-16 09:32:55 +08:00 via Android
    单次次操作的话逐帧看就行了
    shinonome
        2
    shinonome  
    OP
       2023-04-16 09:41:52 +08:00
    @renmu 啊,是我没说清楚,是想要程序自动寻找
    callmesmc
        3
    callmesmc  
       2023-04-16 10:45:30 +08:00 via iPhone
    可以定饱和度或者明度的区间
    Building
        4
    Building  
       2023-04-16 11:40:30 +08:00 via iPhone
    文字图层 mask 图片图层得到图层 1
    白色文字图层 blend 图层 1 得到图层 2 ,
    如果图层 2 颜色不变,则文字消失
    shinonome
        5
    shinonome  
    OP
       2023-04-16 11:47:45 +08:00
    @Building
    主要是他不是白色文字,这个文字是逐渐消失的,中间过度的时候是半透明的,这样可以吗
    NoOneNoBody
        6
    NoOneNoBody  
       2023-04-16 12:54:13 +08:00
    换个思路,此题实际上不是找图片,而是找时间点,一个周期变化的事物,两周期之间的时间点
    找和这个周期同步的某个值,例如颜色均值?
    我只是开个思路……
    ETiV
        7
    ETiV  
       2023-04-16 13:26:22 +08:00 via iPhone
    找边缘?
    前两天 meta 发布 segment anything 模型,可以识别图片中的各种不同模式的块
    理论上你这个不需要找出含有文字的部分,只需要找到块最少的那一帧就好了
    harmless
        8
    harmless  
       2023-04-16 15:19:41 +08:00 via iPhone   ❤️ 1
    每帧与上一帧对比,连续出现帧相同的话就是没有文字的图片了
    Building
        9
    Building  
       2023-04-16 16:37:28 +08:00
    @shinonome
    mask 为白色文字 = 图片 a
    选择视频任意图片帧 = 图片 b
    图片 b blend(mode = color burn) 图片 a = 图片 c ,当图片 b 文字为透明度为 0 的时候,图片 c 没有文字,否则文字为白色
    图片 b 文字是否透明 = !(图片 b blend(mode = color burn) 图片 a == 图片 b blend(mode = normal) 图片 a)
    ns09005264
        10
    ns09005264  
       2023-04-16 17:18:09 +08:00
    1.指定一个小的矩形区域来进行颜色采样,比如在那个锁面上选一小块。
    2.根据采样区对所有帧进行颜色采样,采样为 HSL 之类色彩空间,记录每帧采集的亮度。
    3.这样你就得到一组亮度变化数据,在这组数据中选择所有的局部最小峰值,其对应的应该就是白色文字消失时的帧。
    lonewolfakela
        11
    lonewolfakela  
       2023-04-16 20:01:42 +08:00
    从最后一帧倒着往前找,第一个画面内容有变动的帧就是最后一幅还有一点点文字残留的帧……
    louistayd2
        12
    louistayd2  
       2023-04-16 21:49:01 +08:00
    神偷啊,这游戏好久没玩了。当时感觉越往后玩都是靠精准时刻的点击来卡位置,太累了。
    chenzhekl
        13
    chenzhekl  
       2023-04-17 01:25:47 +08:00 via iPhone
    我的想法是做 cycle detection 。找到文字完全不透明的周期,一个周期的中点可能就是文字完全消失的时候。
    qqjt
        14
    qqjt  
       2023-04-17 11:13:19 +08:00
    多截几次图,把不同的像素挑出来,就是文字了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1158 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:15 · PVG 07:15 · LAX 15:15 · JFK 18:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.