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的Flask框架中web表单的教程
Apr 20 Python
Python判断字符串与大小写转换
Jun 08 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
python:print格式化输出到文件的实例
May 14 Python
numpy中loadtxt 的用法详解
Aug 03 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
python 内置模块详解
Jan 01 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 Python
解析PyCharm Python运行权限问题
Jan 08 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
Python中的datetime包与time包包和模块详情
Feb 28 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
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
javascript回调函数详解
2018/02/06 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
分享一个简单的python读写文件脚本
2017/11/25 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
对python中Json与object转化的方法详解
2018/12/31 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Python 面向对象部分知识点小结
2020/03/09 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
行政主管岗位职责
2013/11/18 职场文书
办公室文书岗位职责
2013/12/16 职场文书
绩效工资分配方案
2014/01/18 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
科技节口号
2014/06/19 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS