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正则表达式介绍
Aug 06 Python
python搭建简易服务器分析与实现
Dec 15 Python
python实现探测socket和web服务示例
Mar 28 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
pycharm创建一个python包方法图解
Apr 10 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
python性能测量工具cProfile使用解析
Sep 26 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
python实现从ftp服务器下载文件
Mar 03 Python
Python 存取npy格式数据实例
Jul 01 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
Django框架下在视图中使用模版的方法
2015/07/16 Python
Python 基础知识之字符串处理
2017/01/06 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
中国高端家电购物商城:顺电
2018/03/04 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
法国在线药房:DoctiPharma
2020/10/21 全球购物
2014年教师培训的自我评价
2014/01/03 职场文书
董事长助理岗位职责
2014/02/18 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
担保书范文
2015/01/20 职场文书
教师培训学习心得体会
2016/01/21 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
使用python绘制横竖条形图
2022/04/21 Python