截取视频封面后,经常出现全黑、全白等不可用的封面图片。于是就有了用程序选择视频封面的需求。

经过不断试验,效果最好的方法是根据图片内物品的数量来选图。

废话不多说,直接上代码:

1. 把图片处理为灰度图

import cv2

# pip install opencv-python

img=cv2.imread('pic-1.jpg')

grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# cv2.imshow('src', grayImg)

# cv2.imshow('src', grayImg)

处理完后  ====>

2. 图片二值化

scalar = cv2.mean(grayImg)

thresh = scalar[0]

_, binImg = cv2.threshold(grayImg, thresh, 255, cv2.THRESH_BINARY)

这里需要说下thresh值的选择,它决定了颜色最终转为黑色还是白色(大于thresh为白色)。

大多数教程中,这个值都是一个固定的数,但这是不准确的。对于较暗或是较亮的图片,会造成图片全黑或全白。因此这里使用了mean动态确定thresh。

如例图是一张较暗的图片,thresh经过动态调整后,效果比固定一个值要好。

3. 画出轮廓

contours, hierarchy = cv2.findContours(binImg, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)

print(len(contours))

由于我们不需要那么精确的找到图片中的物品,可以认为contours的数量就是物品的数量。最后对比多张图片选取contours最多的一张就行。

如果你想验证求得轮廓的效果,可以使用drawContours画出轮廓。

cv2.drawContours(img, contours, -1, (0, 200, 255), 2)

cv2.imshow('src',img)

# or

# cv2.imwrite('pic-1-contors.jpg',img)

结果如图:

python 过滤相似图片_Python过滤纯色图片,挑选视频封面相关推荐

  1. python编程图片_python下载百度图片,python图片下载程序

    以前写的一个百度图片下载的代码,现在试试还能用,现在百度图片的质量也是越来越高了,共享一下,让粉丝和图片控能方便下载:后续功能追加请关注我的小站#coding:utf-8 ''' python 2.7 ...

  2. python用selenium 验证码图片_Python +Selenium解决图片验证码登录或注册问题(推荐)

    1. 解决思路 首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载. 解决方案:截图然后根据该图片的定位和长高,使用工具进行裁剪 裁剪完毕之后,使用工具解析该图片. ...

  3. python抓取图片数字_Python提取数字图片特征向量 | kTWO-个人博客

    引言 在机器学习中有一种学习叫做手写数字识别,其主要功能就是让机器识别出图片中的数字,其步骤主要包括:图片特征提取.将特征值点阵转化为特征向量.进行模型训练.第一步便是提取图片中的特征提取.数据的预处 ...

  4. python随机排列图片_python 随机打乱 图片和对应的标签方法

    如下所示: # -*- coding: utf-8 -*- import os import numpy as np import pandas as pd import h5py import py ...

  5. python实现图形旋转_python轻松实现图片旋转

    小编尝试了一下用Python旋转图片,效果还是很不错的,下面就和大家一起分享一下! #首先建好一个数据_ud文件夹 import PIL.Image as img import os path_old ...

  6. python文字识别算法_Python图像处理之图片文字识别(OCR)

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

  7. 如何用python批量处理图片大小_python批量修改图片大小的方法

    本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下 引用的模块 from PIL import Image Image的使用 def resize_image(img ...

  8. python多线程下载编程_python多线程下载图片

    功能:从p_w_picpath.baidu.com自动翻页下载图片的python程序 用法:运行程序后,输入关键字即可 #!/usr/bin/python # filename: getbaidupi ...

  9. python 批量下载图片_Python 批量下载图片示例

    使用Python find函数和urllib下载图片. A:#!/usr/bin/env python import time import urllib i = 0 url = ['']*10 na ...

最新文章

  1. JAVA删除临时文件
  2. 矩形在as3视觉编程中的几个应用方式
  3. C 中可以这样写函数的参数 !!
  4. 学习笔记(39):Python实战编程-标签
  5. 愉快且卓有成效:培养你与人相处的能力
  6. concat特征融合_MSFNet:多重空间融合网络进行实时语义分割(北航和旷视联合提出)...
  7. ORACLE SQL总结六:管理方案对象
  8. 【Fiddler 实战操作】如何使用 Fiddler 对苹果手机进行抓包
  9. centos6下如何安装mysql服务_CentOS6下安装MySQL数据库服务
  10. MySQL LIKE 子句
  11. 同一目录下有大量文件会影响效率吗_成考学习效率太低?可以从这7方面备考...
  12. 双十一重磅福利来袭,拯救 “四大皆空” 的你!
  13. 计算机毕业设计源码—SpringBoot+Vue疫情防控管理系统
  14. 格力董明珠和小米雷军的10亿赌局 --- 当年的理念谁赢谁输
  15. vue调用服务器图片
  16. rap技术原理_RAP_表观遗传_北京晶莱华科生物技术有限公司
  17. 股票振幅榜查询易语言代码
  18. 无线分组网关系统解决方案(GGSN、PDSN)
  19. ES8都有哪些新特性,你还在用ES6吗?
  20. android手机配什么蓝牙耳机,Airpods Pro搭配安卓手机+Windows电脑服用指南(避坑指南)...

热门文章

  1. Drupal 模块开发基本教程(三)
  2. 在R中统计数据的频数或者密度分布并图形化
  3. 【大学生项目与竞赛】2021年全国大学生电子设计大赛 (二)模块储备
  4. 来了老弟,表格的渲染
  5. 为docker ps命令添加服务名称
  6. matlab画出拟合的曲线,matlab画出拟合曲线
  7. Java学习记录_1:MOOC《零基础学Java语言》课后习题解
  8. WPS无法用Ctrl V进行粘贴,怎么办?
  9. ldirectord 介绍
  10. 【FXCG】波段操作的四个步骤