怎样判断横屏视频是中间包含完整竖屏,两边模糊的视频?

2021-04-23 19:33:17 +08:00
 enzoyang

如题,希望用程序把已有的视频做个标记,方便展示

857 次点击
所在节点    问与答
5 条回复
3dwelcome
2021-04-23 20:12:53 +08:00
把两边屏幕的部分裁剪下来,用 fft 2d 进行运算,画面是不是模糊处理过,频域空间一看便知。
zhaohui318
2021-04-24 06:50:46 +08:00
像你说的这类视频的特征就是中间清晰,两边模糊,那么根据这个特征去判断就行了。

目前有很多模糊图片检测算法
https://zhuanlan.zhihu.com/p/97024018
enzoyang
2021-04-24 16:37:52 +08:00
谢谢大家的提示,我试验了一下,边缘检测加判断图中竖直的边缘应该够用了

```
def detect_horizontal_edges(cv_img) -> list:
"""找出图片中的竖线边界"""

if isinstance(cv_img, str):
cv_img = cv2.imread(cv_img)

# 转成灰度
gray_img = cv2.cvtColor(cv_img, cv2.COLOR_BGR2GRAY)
# 边缘检测
canny = cv2.Canny(gray_img, 20, 100)
# 加粗边缘
kernal = cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))
dilated = cv2.dilate(canny, kernal)

# 判断竖线
h, w = dilated.shape[0], dilated.shape[1]
threshold = int(h * 0.75)
edge_positions = []
for x in range(w):
white_dots = 0
for y in range(h):
if dilated[y, x] == 255:
white_dots += 1
if white_dots > threshold:
edge_positions.append(x)

return edge_positions
```
enzoyang
2021-04-25 10:04:34 +08:00
应该是 detect_vertical_edges,代码里弄混了
julyclyde
2021-05-08 16:25:06 +08:00
腾讯在这方面好像有个专利

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/772804

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX