(三)图像转灰度图Python实现

这里写目录标题

      • (一)原始图像
      • (二)转换原理
      • (三)python实现
          • 1. 安装库
          • 2. python程序编写
          • 3. 效果
          • 4. 工程文件

(一)原始图像

请添加图片描述

(二)转换原理

(三)python实现

python安装可以参考:python安装

1. 安装库

首先我们需要安装用到的库,按住win+r输入cmd打开dos窗口,输入下面的命令

pip install opencv-python
pip install numpy

在这里插入图片描述

2. python程序编写
"""
@author:zhixia彩图转灰度图
"""#import 导入模块,每次使用模块中的函数都要是定是哪个模块。
#from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了
from skimage.color import rgb2gray #skimage图形处理库 color是颜色空间转换子模块 pip install scikit-image
import numpy as np 
import matplotlib.pyplot as plt  #matlab的python库  pip install matplotlib
from PIL import Image # Python Imaging Library 图像处理库 pip install pillow
import cv2 #图像灰度化#cv2的方式
img = cv2.imread("lenna.png")
h,w = img.shape[:2] #获取图片的high和wide
img_gray=np.zeros([h,w],img.dtype) #创建一张和当前图片大小一样的单通道图片
for i in range(h):for j in range(w):m = img[i,j]img_gray[i,j] =int(m[0]*0.11+m[1]*0.59+m[2]*0.3) #将BGR坐标转换为gray坐标
print(img_gray)
print("image show grap:%s"%img_gray)
cv2.imshow("imageshow gray", img_gray)#plt方式
plt.subplot(221) #表示将整个图像窗口分为2行2列, 当前位置为1.
img = plt.imread("lenna.png")
plt.imshow(img)
print("----image lenna -----")
print(img)#灰度化
img_gray = rgb2gray(img)
plt.subplot(222)
plt.imshow(img_gray,cmap="gray")
print("-----image gray-------")
print(img_gray)#二值化
img_binary = np.where(img_gray >= 0.5, 1, 0) 
print("-----imge_binary------")
print(img_binary)
print(img_binary.shape)#plt方式
plt.subplot(223) 
plt.imshow(img_binary, cmap='gray')
plt.show()
3. 效果

在这里插入图片描述

打印信息:

===== RESTART: E:\ProgramDemo\AI\opencv\opencv\interpolation\image_gray.py =====
[[162 162 162 ... 169 155 128][162 162 162 ... 169 155 128][162 162 162 ... 169 155 128]...[ 42  42  49 ... 104 100  98][ 43  43  54 ... 103 105 108][ 43  43  54 ... 103 105 108]]
image show grap:[[162 162 162 ... 169 155 128][162 162 162 ... 169 155 128][162 162 162 ... 169 155 128]...[ 42  42  49 ... 104 100  98][ 43  43  54 ... 103 105 108][ 43  43  54 ... 103 105 108]]
----image lenna -----
[[[0.8862745  0.5372549  0.49019608][0.8862745  0.5372549  0.49019608][0.8745098  0.5372549  0.52156866]...[0.9019608  0.5803922  0.47843137][0.8666667  0.50980395 0.43137255][0.78431374 0.3882353  0.3529412 ]][[0.8862745  0.5372549  0.49019608][0.8862745  0.5372549  0.49019608][0.8745098  0.5372549  0.52156866]...[0.9019608  0.5803922  0.47843137][0.8666667  0.50980395 0.43137255][0.78431374 0.3882353  0.3529412 ]][[0.8862745  0.5372549  0.49019608][0.8862745  0.5372549  0.49019608][0.8745098  0.5372549  0.52156866]...[0.9019608  0.5803922  0.47843137][0.8666667  0.50980395 0.43137255][0.78431374 0.3882353  0.3529412 ]]...[[0.32941177 0.07058824 0.23529412][0.32941177 0.07058824 0.23529412][0.36078432 0.10588235 0.22745098]...[0.6784314  0.28627452 0.32941177][0.6745098  0.26666668 0.29803923][0.69411767 0.24313726 0.30980393]][[0.32156864 0.08627451 0.22352941][0.32156864 0.08627451 0.22352941][0.3764706  0.1254902  0.24313726]...[0.7019608  0.27450982 0.30980393][0.70980394 0.2784314  0.31764707][0.7254902  0.2901961  0.31764707]][[0.32156864 0.08627451 0.22352941][0.32156864 0.08627451 0.22352941][0.3764706  0.1254902  0.24313726]...[0.7019608  0.27450982 0.30980393][0.70980394 0.2784314  0.31764707][0.7254902  0.2901961  0.31764707]]]
-----image gray-------
[[0.60802865 0.60802865 0.60779065 ... 0.6413741  0.57998234 0.46985728][0.60802865 0.60802865 0.60779065 ... 0.6413741  0.57998234 0.46985728][0.60802865 0.60802865 0.60779065 ... 0.6413741  0.57998234 0.46985728]...[0.13746354 0.13746354 0.16881412 ... 0.37271804 0.35559532 0.34377727][0.14617059 0.14617059 0.1873059  ... 0.36788785 0.3729255  0.3846753 ][0.14617059 0.14617059 0.1873059  ... 0.36788785 0.3729255  0.3846753 ]]
-----imge_binary------
[[1 1 1 ... 1 1 0][1 1 1 ... 1 1 0][1 1 1 ... 1 1 0]...[0 0 0 ... 0 0 0][0 0 0 ... 0 0 0][0 0 0 ... 0 0 0]]
(512, 512)
4. 工程文件

线性插值函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java泛型上下限

前言: java的泛型上下限不是很好理解,尤其像我这种菜鸡。反反复复看了好几遍了...,真是... 一、简单的继承体系 class Person{}class Student extends Person{}class Worker extends Person{} 二、泛型上限(extends 关键字&#x…

基于matlab的步进电机仿真(一)

这里写目录标题环境准备基础准备模型参数输入和输出仿真原理图仿真资源环境准备 MatLab2021b 基础准备 打开Matlab,在帮助文档里面搜索step motor,我们这里选择如下模型 该模型实现了一个通用的步进电机模型: 可变磁阻步进电机永磁或混合步进电机 …

java自定义类加载器

前言 java反射,最常用的Class.forName()方法。做毕设的时候,接收到代码字符串,通过 JavaCompiler将代码字符串生成A.class文件(存放在classpath下,也就是eclipse项目中的bin目录里),然后通过jav…

repo介绍(一)

repo简介 Repo 是我们以 Git 为基础构建的代码库管理工具,可以组织多个仓库的上传和下载。它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库 一个大型的项目可能由很多小的仓库组合而成的,为了方便统一管理各个…

hash长度扩展攻击

作为一个信息安全的人,打各个学校的CTF比赛是比较重要的! 最近一个朋友发了道题目过来,发现有道题目比较有意思,这里跟大家分享下 这串代码的大致意思是: 这段代码首先引入了一个名为"flag.php"的文件&am…

repo介绍(二)

这篇文章来实例操作 安装repo,参考repo介绍这一节创建repo存放default.xml 的git仓库 初始化repo,repo init -u https://gitee.com/angerial/repo-test.git 这个时候会在当前目录生成如下文件 参考repo组成,修改.repo/manifest.xml,这里我的…

springmvc环境搭建以及常见问题解决

1.新建maven工程 a) 打开eclipse,file->new->project->Maven->Maven Project b) 下一步 c) 选择创建的工程为webapp,下一步 d) 填写项目的group id和artifact id。一般情况下,group id写域名的倒序,artifact id…

eclipse build workspace太慢或者 js出错问题解决

1.js文件错误解决办法 右键项目->properties->Builders(注:JavaScript Validator也会引起 build workspace太慢) 2.Eclipse 一直不停 building workspace完美解决总结(来自: http://blog.163.com/shadow_wolf/blog/static/18346909720145279519222…

springmvc+jpa实现分页的两种方式

1.工具类 public final class QueryTool {public static PageRequest buildPageRequest(int pageNumber, int pageSize, String sortType){Sort sort null;if("auto".equals(sortType)) {sort new Sort(Direction.DESC, "ctime");} else {sort new Sort…

不使用session,借助redis实现验证码

1.首先看一下基本的流程 2.看一下代码 注:其中用到的一些工具类,可以到我的github上去下载 https://github.com/hjzgg/usually_util/tree/master/utils windows 下的 redis下载 https://github.com/hjzgg/redis 获取验证码的tooken RequestMapping(value…

PS批处理的使用

一、 前言 做开发的时候,最多的时候就是图片的使用了。有时候图片的处理都按照同样的步骤,比如说统一将图片的大小调整为固定大小,或者统一在所有的图片的的某个位置上加入文字或者小图片等等,这时候PS的批处理可以帮你完成这些重…

exe4j的使用

下载:http://download.cnet.com/exe4j/3000-2070_4-144405.html 参考:http://blog.chinaunix.net/uid-25749806-id-4380850.html 注:打包成jar包的一般就是src目录,其他目录放到目标文件夹中,目录结构如下 如何解决exe…

android表白app

一、前言 马上就要520和521了,是不是还有像我一样的单身狗啊。我就知道有,所以这两天简单写了这个小程序(其实是替别人写的),虽然我并不会用去骗女孩子(因为最近太忙了,实习完之后要搞毕设&…

webpack+react+es6开发模式

一、前言 实习了两个月,把在公司用到的前端开发模式做个简单的整理。公司里前端开发模式webpackreactreduxes6,这里去掉了redux。 webpack, react, redux等学习网址:http://www.cnblogs.com/hujunzheng/p/5405780.html 二、简单的步骤条组件 …

git命令分类图

转载于:https://www.cnblogs.com/hujunzheng/p/5560826.html

数据结构算法模拟系统

一、前言 学习数据结构已经有很长时间了,加上之前搞过一段时间的ACM,虽然搞得并不怎么样吧,但是喜欢的东西不能放弃,一直打算写一个算法模拟系统,对常用的一些算法进行简单的模拟,于是我的毕业设计就这样诞…

推荐几款jquery图片切换插件

一、前言 毕业季到了,大家都在匆匆忙忙的记录大学里最美好的时光,照片中各种花式、各种姿势都涌现出来了。这么多的照片怎么展示出来给自己的好友看呢?有人选择做成视频,有人选择ps之后做成图片集,而我选择利用静态网页…

c语言表白

马上就要520了&#xff0c;不少小伙伴们一定开始想尽各种办法进行表白了…那么身为奔跑在程序员道路上的我们也一定要有独特的表白方法&#xff01; 下面是一段表白代码&#xff0c;请直接搬去用吧&#xff01;&#xff01;&#xff01; #include <stdio.h> void change…

python表白

马上就要520了&#xff0c;不少小伙伴们一定开始想尽各种办法进行表白了…那么身为奔跑在程序员道路上的我们也一定要有独特的表白方法&#xff01; 下面是一段表白代码&#xff0c;请直接搬去用吧&#xff01;&#xff01;&#xff01; import turtle import timedef hart_ar…

git revert和reset区别

1.在github上建立测试项目并克隆到本地 2.本地中新建两个文本文件 3.将a.txt commit并push到远程仓库 执行 git add a.txt, git commit -m "a.txt", git push 4.将b.txt提交到本地仓库&#xff0c;不执行push 通过gitk命令查看提交历史如下&#xff1a; 情景&#xf…