使用Python+OpenCV生成字幕(歌词)

通过 GitHub 查看代码

https://github.com/antoneev/66DaysOfData/tree/main/captionSuggestionsUsingLyrics

查看部署的应用程序

https://share.streamlit.io/antoneev/66daysofdata/main/captionSuggestionsUsingLyrics/app.py

目录

  • 介绍

  • 颜色检测

  • 对象检测

  • 相似词建议

  • Lyrics Genius  API

  • 主函数

  • Streamlit

  • 部署

  • 资源

介绍

该项目的作用是使用歌词为图像提供字幕。许多人当前面临的问题之一是缺乏诙谐、机智、深刻的见解,或者仅仅是优秀的字幕。

随着社交媒体的兴起,一切都需要一个标题。从与祖母的合影到与狗的可爱合影,问题是我们大多数人都没有合适的词来为我们的照片添加标题,这让我们等了几个星期才发帖,有时我们也从来没有为此发帖。其他时候,它只是简单地发布而没有标题。

该项目试图通过使用对象和颜色检测来查找照片中的元素来解决这个问题。然后,该算法使用通过我们选定的艺术家,在 Lyrics Genius 包找到歌词并在整个系统中搜索这些元素并返回。

颜色检测

算法列表的第一站是颜色检测。颜色检测是使用K-Means 聚类、OpenCV 和 colors.csv 文件。

K-Means 聚类

  1. 打开文件并在 RBG 通道上对其进行转换并调整其大小后。应用了K-means。K-means 用于根据用户选择的数量返回图像中找到的“n 个主要”颜色。

  2. 如果用户输入黑色图像,并告诉系统搜索 10 种颜色,这也会处理实例。系统将返回单一的黑色。

def palette(clusters):
    width = 300
    palette = np.zeros((50, width, 3), np.uint8)
    steps = width/clusters.cluster_centers_.shape[0]
    for idx, centers in enumerate(clusters.cluster_centers_):
        palette[:, int(idx*steps):(int((idx+1)*steps)), :] = centers
    return palette

OpenCV

  1. 设置此值后,算法会检测图像中的 n 个主色。然后我们将图像和调色板保存在 compare_img() 中。

  2. 紧接着,我们使用all_colors_in_img()返回图像中所有颜色的列表。这多次重复相同的颜色。

  3. 因此, np.unique() 用于返回唯一值。

def compare_img(img_1, img_2):
    f, ax = plt.subplots(1, 2, figsize=(10,10))
    ax[0].imshow(img_1)
    ax[1].imshow(img_2)
    ax[0].ax
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值