python图片灰度化处理的几种方法
作者:flandre翠花 发布时间:2023-03-05 01:14:57
标签:python,图片,灰度化
今天在学习的时候,发现scipy.misc中的imread提取图片的方法被弃用了。太生气了!
只好使用了matplotlib.pyplot中的imread了,可是当我发现他不能直接通过True来提取灰度图片时,我崩溃了
上网查了一下,了解了灰度化处理的几种方法:
首先先解释一下,彩色图片一般是由RGB组成,其实就是3个二维数组叠加而成。我们也就能看到一些彩色图片了。当R=G=B时,彩色图片就会变成一种灰度颜色,就是我们俗称的“黑白照片”。所以灰度颜色的图片其实就是一个二维数组。
灰度化处理总共有三种方法:最大值法、平均值法、加权平均法。
从字面意思我们也能看出,前两种的意思。但第三种中的加权平均中的权值从何而来?
它是一个固定值,分别是R:0.299、G:0.587、B:0.114。因为人眼对绿色的敏感度更高,对红色次之,蓝色最低,因此使用不能的权值可以得到更合理的灰度图像,所以经过多次的实验才推导出该数值。
首先康康原图
original = plt.imread('C:\\Users\\11140\\Pictures\\Saved Pictures\\abc.jpg')
print(original.shape)
# (640, 640, 3)
plt.imshow(original)
plt.show()
最大值法:
original = original.max(axis=2)
print(original.shape)
# (640, 640)
plt.imshow(original,cmap='gray')
plt.show()
平均值法:
original = original.mean(axis=2)
print(original.shape)
# (640, 640)
plt.imshow(original,cmap='gray')
plt.show()
加权平均法
original = np.dot(original,[0.299,0.587,0.114])
print(original.shape)
# (640, 640)
plt.imshow(original,cmap='gray')
plt.show()
这样看起来,第一张和第二张有很大的差别。第三张相比第二张,好像确实第三张看起来更舒服一点
来源:https://blog.csdn.net/flandreflor/article/details/118070226


猜你喜欢
- lambda函数lambda是什么大家好,今天给大家带来的是有关于Python里面的lambda表达式详细解析。lambda在Python里
- 单目标跟踪:直接调用opencv中封装的tracker即可。#!/usr/bin/env python3# -*- coding: utf-
- 目录获取二维码部分获取关注状态值解析微信服务器报文大致思路:调用微信带参数二维码接口生成二维码,前端显示二维码同时于服务器进行长链接通信,监
- python封装简介1.效果图:对比一:对比二:2.学习来源代码:# 封装是面向对象的三大特性之一# 封装指的是隐藏对象中一些不希望被外部所
- \\create by ahuinan 2009-6-22 \\up by ahuian 2009-6-23 \\up by ahuinan
- 在网上查找大量资料,经过自己的不懈努力,终于测试成功了。原来要在服务器上安装mysql odbc 3.51 ,还有数据库用户名及密码,用下面
- 本文实例为大家分享了python正则实现计算器功能的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*- # A
- Tensor有不同的数据类型,每种类型分别有对应CPU和GPU版本(HalfTensor除外)。默认的Tensor是FloatTensor,
- 解决anaconda打不开的问题,亲测成功!!彻底卸载四步骤1.找到anaconda的安装路径,删除envs文件和pkgs文件2.运行ana
- 前几天小芳同学一直在群发起一些加速的话题,我已经把聊天记录抽出来,正打算整理出份像样的,没想到小芳同学非常速度的出了这篇。我的就省掉了,挖哈
- 一段基于OpenCV2的代码。作用是从摄像头获取帧并将帧写入指定的视频文件中。需要注意的是,视频文件所在的路径需要存在,例如D:/image
- 本文实例为大家分享了微信小程序实现简单购物车的具体代码,供大家参考,具体内容如下微信小程序定制好看的购物车页面,实现购物车功能,希望对您有所
- 本文实例讲述了Python实现模拟登录及表单提交的方法。分享给大家供大家参考。具体实现方法如下:# -*- coding: utf-8 -*
- 1 什么是注释注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释
- 这个工具是使用Python开发,可以从下面地址了解详情。官网: https://pypi.org/project/webssh/webssh
- 第一部分:UI界面设计界面效果图如下:ui文件(可拉动控件自行创建一个button和text)<?xml version="
- function clickButton(id) { &n
- 可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/11/03/python-m
- 由于一些原因,需要SAE上站点的日志文件,从SAE上只能按天下载,下载下来手动处理比较蛋疼,尤其是数量很大的时候。还好SAE提供了API可以
- 当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF- 8