python 图像判断,清晰度(明暗),彩色与黑白实例


Posted in Python onJune 04, 2020

1,判断图像清晰度,明暗,

原理,Laplacian算法。偏暗的图片,二阶导数小,区域变化小;偏亮的图片,二阶导数大,区域变化快。

import cv2
 
def getImageVar(imgPath):
  image = cv2.imread(imgPath)
  img2gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  imageVar = cv2.Laplacian(img2gray, cv2.CV_64F).var()
  return imageVar
 
imageVar = getImageVar("./lena.jpg")
print(imageVar)

python 图像判断,清晰度(明暗),彩色与黑白实例

输出结果:

2119.0913581351697

2,判断黑白或彩色图片

原理,通道变化

def is_color_image(url):
  im=Image.open(url)
  pix=im.convert('RGB')
  width=im.size[0]
  height=im.size[1]
  oimage_color_type="Grey Image"
  is_color=[]
  for x in range(width):
    for y in range(height):
      r,g,b=pix.getpixel((x,y))
      r=int(r)
      g=int(g)
      b=int(b)
      if (r==g) and (g==b):
        pass
      else:
        oimage_color_type='Color Image'
  return oimage_color_type

补充知识:求图片的平均亮度

图像相关开发中,有时我们需要知道和了解图片的 亮度 这一信息,例如判断图片是否曝光严重过度或者太黑什么都看不清。

那么怎么去获取到图片的 平均亮度 这一信息呢?

一、YUV 图片

一般相机的原始数据类型就是 YUV 格式,这种格式下很容易求得亮度,因为它的 Y 通道就是亮度通道,我们只需要求得 Y 通道的平均值就可以了。

由于 YUV 图片前 width * height 个字节存放的就是 Y 的值,所以其均值计算如下:

void calculate_average_brightness(const unsigned char* image, const int width, const int height, double* brightness) {
  int length = width * height;
  double sum;
  for (int i = 0; i < length; ++i) {
    sum += image[i];
  }
  brightness = sum / length; // brightness value: [0, 255]
}

注意这样计算得到的亮度值范围为 0~255,如果要归一化的话,再除以 255 即可。

二、RGB 图片

RGB 图片的计算理论和上述差不多,不过我们需要先求得 R、G、B 三个通道的均值。

RGB 图片的亮度计算公式为:

Y = 0.299 * R + 0.587 * G + 0.114 * B ​

以上这篇python 图像判断,清晰度(明暗),彩色与黑白实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python根据出生日期获得年龄的方法
Mar 31 Python
python自定义解析简单xml格式文件的方法
May 11 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
python中数据爬虫requests库使用方法详解
Feb 11 Python
python 以16进制打印输出的方法
Jul 09 Python
python使用knn实现特征向量分类
Dec 26 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
python十进制转二进制的详解
Feb 07 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 #Python
Python使用Matlab命令过程解析
Jun 04 #Python
Python flask框架端口失效解决方案
Jun 04 #Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 #Python
Python新手学习装饰器
Jun 04 #Python
基于python 取余问题(%)详解
Jun 03 #Python
Python中关于logging模块的学习笔记
Jun 03 #Python
You might like
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
PHP异常处理Exception类
2015/12/11 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
Javascript下的keyCode键码值表
2007/04/10 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
详解Python 切片语法
2019/06/10 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
酒店总经理岗位职责
2014/03/17 职场文书
房屋转让协议书
2014/10/18 职场文书
安全保证书
2015/01/16 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript
Python如何导出导入所有依赖包详解
2021/06/08 Python
关于python爬虫应用urllib库作用分析
2021/09/04 Python
Nginx实现负载均衡的项目实践
2022/03/18 Servers