灰度图处理方法

做深度学习项目图像处理的时候常常涉及到灰度图处理,这里对自己处理灰度图的方式做一个记录,后续有更新的话会在此更新

一,多维数组可视化

将多维数组可视化为灰度图

img_gray = Image.fromarray(img, mode='L')   # 实现array到image的转换,model 常用的模式有‘1’,‘L’,‘RGB’, 1是二值图像,L是灰度图像,RGB是彩色图像
img_gray.show()  # 显示灰度图

二,对比度拉伸

拉伸对比图突出想可视化的部分

# 对比度拉伸
Imax = np.max(img)   # img是多维数组,输入灰度图的时候注意先np.array转一下
Imin = np.min(img)
MAX = 1200
MIN = 0
img_cs = (img - Imin) / (Imax - Imin) * (MAX - MIN) + MIN  # img_cs是多维数组
cv2.imshow('img_cs', img_cs.astype("uint8"))  # 可视化
cv2.waitKey(0)
cv2.destroyAllWindows()

 三,灰度拉伸

拉伸灰度加强对比

def gray_scale(img_gray):img_gray = np.array(img_gray)  # 转多维数组rows, cols = img_gray.shapeflat_gray = img_gray.reshape((cols * rows,)).tolist()min1 = min(flat_gray)max1 = max(flat_gray) print('min = %d, max = %d' % (min1, max1))output = np.uint8(255 / (max1 - min1) * (img_gray - min1) + 0.5)return output
img_gray = Image.fromarray(img, mode='L')   # 实现array到image的转换,model 常用的模式有‘1’,‘L’,‘RGB’, 1是二值图像,L是灰度图像,RGB是彩色图像
grayScale = gray_scale(img_gray)  # 灰度拉伸
cv2.imshow('grayScale', grayScale)  # 显示拉伸后的灰度图
cv2.waitKey(0)
cv2.destroyAllWindows() 

 

 

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

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

相关文章

不能错过的2个方法,轻松学会如何备份系统!

​天有不测风云,电脑也有旦夕祸福,谁也不能预料到未来会发生什么意外状况,为了防止系统故障而导致的数据丢失和系统崩溃状况,学会定期备份系统是很重要的。 那么我们该如何备份系统呢?方法其实还是有很多种…

使用VC++设计程序:对于一幅256级灰度图像,求其一元熵值、二维熵值

数字图像处理–实验二B图像的一维熵与二维熵算法 本文主要是对图像进行一维熵以及二维熵的计算,下面附有实现的代码 文章目录 数字图像处理--实验二B图像的一维熵与二维熵算法一、 实验内容二、 一维熵1. 一维熵的定义2. 一维熵的C代码实现 三、 二维熵1. 二维熵的定…

【Android】画面卡顿优化列表流畅度五之下拉刷新上拉加载更多组件RefreshLayout修改

之前也写过类似组件的介绍: 地址:下拉刷新&上拉加载更多组件SmartRefreshLayout 本来打算用这个替换的,但在进行仔细研究发现不太合适。功能都很好,但嵌入不了当前的工程体系里。原因就是那啥体制懂的都懂。这样的组件需要改…

VUE组件的生命周期

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶…

数字人,虚拟数字人——你看好数字人领域的发展吗?

你看好数字人领域的发展吗? 目录 一、虚拟人、数字人、虚拟数字人基本概念 1.1、虚拟人(Virtual Person) 1.2、 数字人(Digital Human) 1.3、虚拟数字人(Virtual Digital Human) 1.4、侧重…

chatGPT真的会改变我们的生活吗?

先不说生活影响有多大,工作职场影响很大,现在在职场,随处可见Chat GPT的身影 OpenAI 开发的 ChatGPT 和类似的人工智能工具在短时间内不会取代我们的工作。但是,在科技、媒体等许多行业中,它们可以帮助员工更好、更快地…

百度飞浆环境安装

前言: 在安装飞浆环境之前得先把pytorch环境安装好,不过关于pytorch网上教程最多的都是通过Anaconda来安装,但是Anaconda环境安装容易遇到安装超时导致安装失败的问题,本文将叫你如何通过pip安装的方式快速安装,其实这…

PHP 论文发表管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 论文发表管理系统是一套完善的web设计系统mysql数据库 ,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 php 论文发表系统1 代码 https://download.csdn.net/download/qq_412213…

一则DNS被重定向导致无法获取MySQL连接处理

同事反馈xwik应用端报java exception 获取MySQL连接超时无法连接到数据库实例 经过告警日志发现访问进来的IP地址数据库端无法被解析,这里可以知道问题出现在Dns配置上了 通过以上报错检查/etc/resolve.conf 发现namesever 被重定向设置成了114.114.114.114 域名 …

11.3SpringMVC

一.概念 1.SpringMvc: a.构建在Servlet(api)基础上. b.是一个Web框架(HTTP). c.来自于Spring webMVC模块. 2.MVC 二.注册路由的注解 1.RequestMapping("/test") // 路由注册 注意: 这个注解在类和方法上都要使用,代表不同等级的路由. 2.RestController a)R…

【华为OD题库-022】阿里巴巴找黄金宝箱(IV)-java

题目 一贫如洗的椎夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0-N的子,每个箱子上面有一个数字,箱子排列成一个环,编号最大的箱子的下一个是编号为0的箱子。请输出每个箱子贴的数字之后的第…

「题解」相交链表

🍉题目 题目链接 🍉解析 “提示”部分有提示链表数不为零,所以讨论链表为空的情况。 最简单粗暴的思路就是:遍历链表,先使用循环遍历A链表,然后嵌套循环遍历B,比对A、B是否存在地址相同的…