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 相关文章推荐
django model去掉unique_together报错的解决方案
Oct 18 Python
Python 自动化表单提交实例代码
Jun 08 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
Python基本数据类型之字符串str
Jul 21 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学习之PHP表达式
2006/10/09 PHP
php横向重复区域显示二法
2008/09/25 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Python魔法方法功能与用法简介
2019/04/04 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
八年级历史教学反思
2014/01/10 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
围城读书笔记
2015/06/26 职场文书
关于Redis的主从复制及哨兵问题
2022/06/16 Redis
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android