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 list语法学习(带例子)
Nov 01 Python
python实现连接mongodb的方法
May 08 Python
实例讲解Python中SocketServer模块处理网络请求的用法
Jun 28 Python
python实现定时提取实时日志程序
Jun 22 Python
Python日志模块logging基本用法分析
Aug 23 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
Python paramiko模块使用解析(实现ssh)
Aug 30 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
Nov 25 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
使用keras内置的模型进行图片预测实例
Jun 17 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+mysql事务rollback&amp;commit示例
2010/02/08 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
node.js中的console用法总结
2014/12/15 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
python3下载抖音视频的完整代码
2019/06/05 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
Java程序员面试题
2013/07/15 面试题
学生安全教育材料
2014/02/14 职场文书
建筑学专业自荐书
2014/07/09 职场文书
个人股份合作协议书
2014/10/24 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
在职证明格式样本
2015/06/15 职场文书
音乐研修感悟
2015/11/18 职场文书