图像基础13 灰度变换与图像增强
来源:互联网 发布:树莓派ubuntu系统截图 编辑:程序博客网 时间:2024/06/05 18:29
学习资源《机器学习实践指南 案例应用解析》
概念
灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。
采用灰度变换法对图像进行处理可以大大改善图像的视觉效果。灰度变换法可以分为线性变换和非线性变换。
对数变换
对数变换对图像的低亮度区有较大的扩展而对高亮度区进行压缩,简方之就是增强了低值灰度的图像细节,灰度非线性变换公式:
示例程序
# -*- coding: utf-8 -*-import cv2import numpy as np fn = "test.jpg"myimg = cv2.imread(fn)img = cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)jp_img = np.array(40*np.log(img+1),np.uint8)cv2.imshow('src',img)cv2.imshow('dst',jp_img)cv2.waitKey()cv2.destroyAllWindows()
分段线性变换
分段线性变换将图像的值域分成多个值域并进行不同的线性变换计算,可以压缩某部分灰度区,扩展另一部分灰度区间。
程序示例
# -*- coding: utf-8 -*-import cv2import numpy as np fn = "test.jpg"myimg = cv2.imread(fn)img = cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)w=img.shape[1]h=img.shape[0]newimg = np.zeros((h,w),np.uint8)# 源Ds_min = 0Ds_internal = 80 # 中间Ds_max=255# 目标Dd_min = 0Dd_internal = 160 #中间Dd_max=255for m in range(h): for n in range(w): if img[m,n]>Ds_min and img[m,n]<=Ds_internal: newimg[m,n]=int((Dd_internal-Dd_min)/(Ds_internal-Ds_min)*(img[m,n]-Ds_min)+Dd_min) else: newimg[m,n]=int((Dd_max-Dd_internal)/(Ds_max-Ds_internal)*(img[m,n]-Ds_internal)+Dd_internal) print (".")cv2.imshow('src',img)cv2.imshow('dst',newimg)cv2.waitKey()cv2.destroyAllWindows()
指数变换
指数变换的作用是扩展图像的高灰度级、压缩低灰度级,可用于亮度过高的图像。指数变换的基本表达式:
其中,参数
程序示例
# -*- coding: utf-8 -*-import cv2import numpy as np fn = "test.jpg"myimg = cv2.imread(fn)img = cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)b=1.2c=0.2a=0.2newimg=np.array(np.power(b,c*(img-a))-1,np.uint8)cv2.imshow('src',img)cv2.imshow('dst',newimg)cv2.waitKey()cv2.destroyAllWindows()
直方图均衡化
通用用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布,这样就可以用于增强局部的对比度而不影响整体的对比度。
OpenCV的equalizeHist函数实现直方图均衡化:
cv2.equalizeHist(src[, dst]) -> dst
示例程序
# -*- coding: utf-8 -*-import cv2import numpy as np fn = "test.jpg"myimg = cv2.imread(fn)img = cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY)newimg=cv2.equalizeHist(img)cv2.imshow('src',img)cv2.imshow('dst',newimg)cv2.waitKey()cv2.destroyAllWindows()
阅读全文
0 0
- 图像基础13 灰度变换与图像增强
- 灰度图像--图像增强 灰度变换
- 灰度图像--图像增强 锐化基础
- 灰度图像--图像增强 锐化基础
- 图像灰度直方图与对比度增强
- 灰度图像增强
- opencv 灰度图像增强
- python图像数组操作与灰度变换
- 图像处理 灰度变换与空间滤波
- Matlab 图像灰度变换
- mtalab图像灰度变换
- 灰度与灰度图像
- 灰度与灰度图像
- 图像增强中的灰度拓展
- 图像增强中的灰度拓展
- [图像增强]四 灰度拉伸
- 图像增强—灰度拉伸
- 灰度图像--图像增强 综合介绍
- eclipse快捷键
- Haskell语言学习笔记(28)Data.Map
- 安卓屏幕分辨率
- 源代码编译、链接和Makefile简介
- 超平面的定义
- 图像基础13 灰度变换与图像增强
- http
- hdu 3980 Paint Chain(SG函数)
- python基础系列教程——python所有包库的下载
- Haskell语言学习笔记(29)CPS
- Linux11 网络管理
- 【第1082期】关键CSS和Webpack: 减少阻塞渲染的CSS的自动化解决方案
- [Codevs]1746 [NOI2002] 贪吃的九头龙 树形Dp + 多叉转二叉
- 瞄点,路由