我正在用 python 从视频中提取字幕。我在 python 中使用 opencv 来做这个。我把它分成帧,每个帧作为图像存储在我的磁盘中,我在上面做 ocr。但我不想对整个图像执行 ocr。我只想要字幕部分。我用这些值 278:360 手动裁剪图像,因为我的图像大小是 360:640。但图像大小因不同的视频文件而异。现在我的问题是如何以编程方式单独裁剪字幕部分。请回答。提前致谢
textImage = image[278:360,:]
最佳答案
如果您确定字幕会在那里,您可以取图像高度的最后三分之一。
例如,对于下图:
进行如下:
- 将图像读入一个 numpy 数组:
在我的示例中,我使用的是 skimage.io
中的 imread
,但您可以使用 opencv
:
from skimage.io import imread
img = imread('http://cdn.wccftech.com/wp-content/uploads/2017/05/subtitle-of-a-blu-ray-movie.jpg')
img.shape # >>> (383, 703, 3)
- 获取图像的底部三分之一(包含字幕):
想法是将图像的高度除以 3 并取图像底部的三分之一:
crop_position = int(img.shape[0]/3)
subtitle_img = img[img.[0] - crop_position:,:,:]
生成的 subtitle_img
如下所示:
关于python - 如何在 python 中裁剪图像的底部(带字幕的部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46866121/