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获取Linux系统的各种信息
Jul 10 Python
python获取android设备的GPS信息脚本分享
Mar 06 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
pycharm实现猜数游戏
Dec 07 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 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 5.0 Pear安装方法
2006/12/06 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
PHP实现简易blog的制作
2016/10/24 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
Python and、or以及and-or语法总结
2015/04/14 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
python+opencv识别图片中的圆形
2020/03/25 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
python数字类型和占位符详情
2022/03/13 Python