数字图像直方图
- 格式:docx
- 大小:123.14 KB
- 文档页数:4
图像处理6灰度直⽅图和直⽅图均衡化灰度直⽅图介绍灰度直⽅图(Gray histogram)是关于灰度级分布的函数,是对图像中灰度级分布的统计。
灰度直⽅图是将数字图像中的所有像素,按照灰度值的⼤⼩,统计其出现的频率。
灰度直⽅图是灰度级的函数,它表⽰图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。
如果将图像总像素亮度(灰度级别)看成是⼀个随机变量,则其分布情况就反映了图像的统计特性,这可⽤probability density function (PDF)来刻画和描述,表现为灰度直⽅图。
实现以下代码便于理解灰度直⽅图的计算,其中histogram函数是基于numpy简化的,运⾏结果如下。
# coding: utf8from skimage import dataimport matplotlib.pyplot as pltimport numpy as npdef histogram(a, bins=10, range=None):"""Compute the histogram of a set of data."""import numpy as npfrom numpy.core import linspacefrom numpy.core.numeric import (arange, asarray)# 转成⼀维数组a = asarray(a)a = a.ravel()mn, mx = [mi + 0.0 for mi in range]ntype = np.dtype(np.intp)n = np.zeros(bins, ntype)# 预计算直⽅图缩放因⼦norm = bins / (mx - mn)# 均分,计算边缘以进⾏潜在的校正bin_edges = linspace(mn, mx, bins + 1, endpoint=True)# 分块对于⼤数组可以降低运⾏内存,同时提⾼速度BLOCK = 65536for i in arange(0, len(a), BLOCK):tmp_a = a[i:i + BLOCK]tmp_a_data = tmp_a.astype(float)# 减去Range下限,乘以缩放因⼦,向下取整tmp_a = tmp_a_data - mntmp_a *= normindices = tmp_a.astype(np.intp)# 对indices标签分别计数,标签等于bins减⼀indices[indices == bins] -= 1n += np.bincount(indices, weights=None,minlength=bins).astype(ntype)return n, bin_edgesif__name__ =="__main__":img=data.coffee()fig = plt.figure()f1 = fig.add_subplot(141)f1.imshow(img)f1.set_title("image")f2 = fig.add_subplot(142)arr=img.flatten()n, bins, patches = f2.hist(arr, bins=256, facecolor='red')f2.set_title("plt_hist")f3 = fig.add_subplot(143)hist, others = np.histogram(arr, range=(0, arr.max()), bins=256)f3.plot(others[1:],hist)f3.set_title("np_hist1")f4 = fig.add_subplot(144)hist, others = histogram(arr, range=(0, arr.max()), bins=256)f4.plot(others[1:], hist)f4.set_title("np_hist2")plt.show()关于bincount函数,可以参考Xurtle的博⽂https:///xlinsist/article/details/51346523bin的数量⽐x中的最⼤值⼤1,每个bin给出了它的索引值在x中出现的次数。
第四章图像增强1.简述直方图均衡化处理的原理和目的。
拍摄一幅较暗的图像,用直方图均衡化方法处理,分析结果。
原理:直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
也就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
把给定图像的直方图分布改变成“均匀”分布直方图分布目的:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
它通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。
通过直方图均衡化,亮度可以更好地在直方图上分布。
这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
Matlab程序如下:clc;RGB=imread('wxf.jpg'); %输入彩色图像,得到三维数组R=RGB(:,:,1); %分别取三维数组的一维,得到红绿蓝三个分量G=RGB(:,:,2); %为R G B。
B=RGB(:,:,3);figure(1)imshow(RGB); %绘制各分量的图像及其直方图title('原始真彩色图像');figure(2)subplot(3,2,1),imshow(R);title('真彩色图像的红色分量');subplot(3,2,2), imhist(R);title('真彩色图像的红色分量直方图');subplot(3,2,3),imshow(G);title('真彩色图像的绿色分量');subplot(3,2,4), imhist(G);title(' 的绿色分量直方图');subplot(3,2,5),imshow(B);title('真彩色图像的蓝色分量');subplot(3,2,6), imhist(B);title('真彩色图像的蓝色分量直方图');r=histeq(R); %对个分量直方图均衡化,得到个分量均衡化图像g=histeq(G);b=histeq(B);figure(3),subplot(3,2,1),imshow(r);title('红色分量均衡化后图像');subplot(3,2,2), imhist(r);title('红色分量均衡化后图像直方图');subplot(3,2,3),imshow(g);title('绿色分量均衡化后图像');subplot(3,2,4), imhist(g);title('绿色分量均衡化后图像直方图');subplot(3,2,5), imshow(b);title('蓝色分量均衡化后图像');subplot(3,2,6), imhist(b);title('蓝色分量均衡化后图像直方图');figure(4), %通过均衡化后的图像还原输出原图像newimg = cat(3,r,g,b); %imshow(newimg,[]);title('均衡化后分量图像还原输出原图');程序运行结果:原始真彩色图像均衡化后分量图像还原输出原图图1.1 原始图像与均衡化后还原输出图像对比通过matlab仿真,由图1.1比较均衡化后的还原图像与输入原始真彩色图像,输出图像轮廓更清晰,亮度明显增强。
数字图像处理学数字图像处理(digital image processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二就是数学的发展(特别就是离散数学理论的创办和健全);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。
一、实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等,具体要求如下:1、编程同时实现图像位移,建议位移后的图像大小维持不变;2、编程实现图像的镜像;3、编程同时实现图像的单位矩阵;4、编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5、编程同时实现以任一角度对图像展开旋转变换,建议分别用双线性插值和最近邻插值两种方法去同时实现,并比较两种方法的转动效果。
二、实验目的和意义:本实验的目的就是并使学生熟识并掌控图像处理编程环境,掌控图像位移、镜像、单位矩阵和转动等几何变换的方法,并能够通过程序设计同时实现图像文件的读、写下操作方式,及图像位移、镜像、单位矩阵和转动等几何变换的程序实现。
三、实验原理与主要框架:3.1实验所用编程环境:visualc++(简称vc)是微软公司提供的基于c/c++的应用程序集成开发工具、vc拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的windows应用程序和web应用程序。
vc除了提供更多高效率的c/c++编译器外,还提供更多了大量的可以器重类和组件,包含知名的谷歌基础类库(mfc)和活动模板类库(atl),因此它就是软件开发人员不可多得的开发工具。
vc丰富的功能和大量的扩展库,类的重用特性以及它对函数库、dll库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于vc具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具。
数字图像处理中的直方图均衡化使用注意事项直方图均衡化是一种通过分布调整来改善图像对比度的方法。
它通过重新分布图像的像素值以增强其视觉效果。
在数字图像处理中,直方图均衡化是一项常用的技术,但在使用过程中需要注意以下几个方面。
首先,直方图均衡化可能会导致图像细节丢失的问题。
因为直方图均衡化会根据像素值的分布进行调整,从而扩展像素值的范围,使得亮度范围更广。
但这也可能导致低对比度区域的细节消失,从而影响图像细节。
因此,在进行直方图均衡化时,应该密切关注图像的细节信息,尽量避免过度调整图像的对比度。
其次,直方图均衡化可能引起噪声的增加。
在直方图均衡化的过程中,图像的亮度分布被调整,可能会增加图像的噪声。
这是因为噪声通常与图像的低亮度区域有关,当低亮度区域被调整时,噪声也可能被放大。
为了减少噪声的影响,可以在均衡化之前对图像进行去噪处理,或者采用自适应的直方图均衡化方法,以避免过度增加图像噪声。
另外,直方图均衡化也可能导致图像的颜色失真问题。
因为直方图均衡化是基于像素值的灰度分布进行调整,对彩色图像来说,它可能会改变图像的颜色分布,从而造成颜色失真。
为了避免这种情况,可以在进行直方图均衡化前将图像转换为HSV颜色空间,并只对亮度(Value)通道进行均衡化,这样可以避免颜色的偏移。
此外,直方图均衡化的效果可能受到图像的动态范围限制。
在某些情况下,图像的动态范围可能不足以支持完整的直方图均衡化。
比如,当图像的某些区域非常亮或非常暗时,直方图可能会在动态范围两端产生剧烈的波动,从而导致图像的细节丢失或噪声增加。
为了解决这个问题,可以采用自适应的直方图均衡化方法,以根据图像的局部动态范围来进行调整,减少对整体图像的影响。
最后,直方图均衡化的选择需要根据具体的应用需求来确定。
直方图均衡化可以改善图像的对比度,使图像更加清晰和易于处理。
但对于一些特定的图像处理任务,如目标检测、图像识别等,直方图均衡化可能并不适用。
REALTIME——DSP系列应用丛书
八.数字图像信号处理实验
实验8.1 :数字图像直方图统计算法
一.实验目的
掌握直方图统计的原理和程序设计;了解各种图像的直方图统计的意义及其在实际中的运用。
二.实验设备
PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装Code Composer Studio 2.21软件。
三.实验原理
灰度直方图是数字图像处理中一个最简单、
任何一幅图像的直方图都包括了可观的信息,某些类型的图像可由其直方图完全描述。
灰度直方图是灰度值的函数,
素的灰度级别,纵坐标是该灰度出现的频率(像素个数与图像像素总数之比)。
程序流程图:
开始
用不同参数调用
构造图像的函数
产生图像
调用直方图统计
子程序统计直方
图
循环重复5次
四.实验步骤
1.实验准备:
-设置软件仿真模式,参看:第三部分、四、1。
III-134
直方图统计
子程序
初始化直方图统
计数组(赋0值)
统计图像中各种像素(取值0-255)的个数
计算各种像素个数占全部图像像素的百分比
直方图统计结束
瑞泰创新——ICETEK-VC5416-A-USB-EDU教学实验系统软件实验指导-启动CCS,参看:第三部分、五、1。
目录为C:VC5416-EDULab-Histogram.pjt。
2.打开工程,
3.编译并下载程序。
4.打开工程“Histogram.pjt”中的C语言源程序“Histo.c”
语句上加软件断点。
5.设置观察窗口:
*选择菜单View->Graph->Image,做如下设置:
*选择菜单View->Graph->Time/Frequency,做如下设置:
6.运行程序:
III-135
REALTIME——DSP系列应用丛书
按“F5”键运行到各个断点,观察图像和直方图统计结果。
7.选择菜单File→workspace→save workspacs As…,输入文件名SY.wks 。
8.退出CCS:请参看本书第三部分、第一章、六。
五.实验结果
分析:由于图像由16级灰度条组成所以直方图统计的结果各灰度的值是离散的,而且各灰度所占百分比大致相同。
分析:图像由连续灰度组成,但较暗的像素所占比例较小,图像大部分是亮的,从直方图中可以观察到,灰度值较小的部分(靠近0)统计值较小并且灰度未均匀分布,表现为分离的柱状图,而灰度值大的部分灰度连续变化。
分析:图像由连续灰度组成,大部分由亮度为140左右的像素组成,没有明显的前景和背景,直方图中只有一个“峰”
III-136
瑞泰创新——ICETEK-VC5416-A-USB-EDU教学实验系统软件实验指导
,处于亮区(灰度取值较大),如果在峰值附近取适当的区域就可以将路面从图像中提取出来,根据直方图中的峰值进行进一步的分析,这是图像处理的常用方法。
分析:
背景,
视觉系统的一个基本组成部分。
六.问题与思考
*请观察以下图像和直方图统计结果,
*请修改程序完成将此图分成三类,每类用不同的颜色表示(黑色0、原灰度、白色)。
III-137。