OpenCV判断图片是否是黑白图

最近运行程序的时候,有一个错误一直出现:too many values to unpack,在代码中报错的这一行是这样的:

h, w, _ = image.shape

这三个返回值分别是高、宽和通道数(彩色图像是3),但是如果是黑白图像,不设置其他参数,黑白图像默认只返回高和宽,所以返回值的数量就对应不起来了。我这里本来的策略是判断图像返回值的数量,如果是两个就用两个去接,三个就按照原来的去接,代码如下:

if len(image.shape) == 2:h, w = image.shape
else:h, w, _ = image.shape

这里的问题解决了,但是新的问题出现了:

看来后续的处理还是会出现相同的问题,与其再去修改后续逻辑,不如直接删除有问题的图像。好在黑白图像也不多,用OpenCV进行读取,然后判断图像的返回值,如果是两个则打印出当前的文件名,进行删除:

image_path =  'file_path'
image_files = os.listdir(image_path)
for images in image_files:image = cv2.imread(os.path.join(image_path, images), -1)if len(image.shape) == 2:print(images)

注意这里读取图像的时候为什么要加-1这个参数,因为不加的话,OpenCV会把黑白图像默认为彩色图像进行解析,1通道会复制两份变成三通道,这就是为什么cv2.imread(image)会返回同样的三个通道的原因,一开始我就被这个给坑了,打印出来一看没有1通道的图像。
找到图像以后删除了就可以了,程序不报错了。

OpenCV判断图片是否是黑白图片相关推荐

  1. android 将图片转换成黑白图片

    先调用android的系统工具,获取图片生成bitmap文件,再使用android中的二值化技术,将图片转化成黑白图片,主界面代码: package com.example.blackwhite;im ...

  2. 004-如何用PS把彩色图片设置成黑白图片?

    方法/步骤 1.第1步:首先,打开一张彩色的图片. 2.第2步:然后,鼠标左键点击菜单栏中的[图像]按钮. 3.第三步:最后,在[图像]按钮的下拉菜单中依次点选[调整]-[去色],就可以把彩色图片设置 ...

  3. 浅谈JavaScript和Canvas实现彩色图片转换成黑白图片

    1.convertToGray() 在主体代码中使用 canvas 元素的id来获取画布,并设置画布的宽和高为图片的宽和高,再将上下文初始化为2d画布:彩色图片加载完成后,使用 drawImage() ...

  4. 判断位图是否是黑白图片

    链接: http://blog.csdn.net/redfield123/article/details/8900073 最近工作需要判断图片是否是黑白的,由于是十万张以上的大批量处理,所以通过程序来 ...

  5. Python彩色图片转成黑白图片

    以下程序运行会将当前目录下的所有.jpg与.png文件进行转换 # 图片二值化 from PIL import Image import osdef convertToGrayImg(imagePat ...

  6. JAVA实现彩色图片转黑白图片 (ImageIO类)

    import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java. ...

  7. Python之将彩色图片批量转化为黑白图片

    一.前言 最近遇到了一个新的情景,需要将彩色图片转化为黑白图片,如果手动地去转化一张一张图片,那就真的太原始,效率太低. 用 Python,只需要几行代码就可以在几秒内转化上千张图片.而且,这个功能的 ...

  8. python照片转彩色手绘_Python 批量转化彩色图片为黑白图片

    最近遇到了一个新的情景,需要将彩色图片转化为黑白图片,如果手动地去转化一张一张图片,那就真的太原始人了. 用Python,咱只需要几行代码就可以在几秒内转化上千张图片.而且,这个功能的用途相当广泛,不 ...

  9. java实现pdf转图片,并可生成黑白图片

    一.开发前准备 所需jar:https://download.csdn.net/download/zqq3436/10588117 jdk版本:1.6 测试代码文件夹目录结构(pdf文件夹下有一些.p ...

  10. Android png图片彩色转黑白,透明度打印变黑色的解决方法

    最近客户有个需求:需要将彩色的图片转成黑白图片用pos机的打印机打印出来. 这个在实现的过程中发现个问题:从网上下载png图片,保存到本地发现透明背景变成了黑色. 正确的: 本地下载的: 因为第一次遇 ...

最新文章

  1. new hashmap 初始大小_害怕面试被问HashMap?这一篇就搞定了
  2. 不平等博弈问题学习记录(二)(对于超实数在博弈下左右相等的扩充)
  3. bootstrape常用标签_bootstrap_03_常用标签
  4. vue数组中对象属性变化页面不渲染问题
  5. mysql 的数据库实例理解_理解数据库和实例
  6. win10下安装和卸载Ubuntu双系统
  7. 网易云api如何调用_谈谈网易云如何快速升级
  8. vc red.msi matlab,vc red.msi x64+x32位版下载
  9. 超简单一行代码实现应用双开,仿照微信双开、QQ双开等实现app应用双开,即采用Android插件化开发在免安装情况下加载使用原生app
  10. 邓仰东专栏|机器学习的那些事儿(四):基于GPU的机器学习实例之AlphaGO
  11. python-基础杂集
  12. 13丨性能测试场景:如何进行场景设计
  13. Spring进阶(六):can not find proxy: set exposeproxy property on advised to make it available
  14. AI不仅要智能,更需要人文:联邦学习重构大数据风控范式
  15. redis 全量复制条件
  16. 钢琴软件c语言源代码,C语言钢琴程序代码.doc
  17. IDM Trial Reset下载|InternetDownloadManager无限试用工具下载
  18. ARM-LED灯--蜂鸣器
  19. 格式化内置T卡和外置T卡
  20. CMD哈希工具certutil -hashfile

热门文章

  1. 数学乐 --- 对数函数(指数函数的反函数)
  2. linux如何上传数据到百度网盘,Linux命令行上传文件到百度网盘
  3. 十万个为什么哪个版本适合小学生阅读
  4. 游戏加加:科学的算法+公平的引擎=最真实的BenchMark
  5. 100M宽带能下载多快? 关于带宽的下载速度研究
  6. 常看:前端面试题搂搂
  7. oracle dbms_lob trim,DBMS_LOB
  8. 最火开源框架MVVMHabit的简单集成使用
  9. 账户服务器暂时出现问题,Microsoft帐户,验证你的帐户,在提交安全代碼后出现提示信息:此服务暂时出现了问题,请重试 - Microsoft Community...
  10. 基于Workbench的橡胶计算收敛调试