当前位置: 首页 > wzjs >正文

做网站图片切图是什么学习网页设计

做网站图片切图是什么,学习网页设计,怎么做网站的ico,软文广告发稿目录 一、直方图 1、计算并显示直方图 2、使用matplotlib方法绘制直方图(不划分小的子区间) 3、使用opencv的方法绘制直方图 (划分16个小的子亮度区间) 4、绘制彩色图像的直方图,将各个通道的直方图值都画出来 二、…

目录

一、直方图

 1、计算并显示直方图

2、使用matplotlib方法绘制直方图(不划分小的子区间)

3、使用opencv的方法绘制直方图 (划分16个小的子亮度区间)

4、绘制彩色图像的直方图,将各个通道的直方图值都画出来

二、直方图均衡化

(1)绘制原图的直方图

 (2)绘制经过直方图均衡化后的图片的直方图

(3)自适应直方图均衡化(局部直方图处理)

三、直方图均衡化的应用

1. 增强图像对比度

2. 提升图像视觉效果

3. 统一图像灰度分布

4. 适用于低对比度图像

总结


一、直方图

直方图:是图像中像素强度分布的图形表达方式,统计各个强度像素值的个数。

直方图的作用:例如视频中。通过标记帧和帧之间显著的边缘和颜色的统计变化,来检测视频中场景的变换。

灰度值在0 - 255范围之间总共 256 个值,可以将我们的范围划分为子部分(称为bins),例如我们可以将这些像素亮度值划分为16个区间值,【0,15】、【16,31】,这两个就是两个亮度区间,它表示会统计亮度值在0到15的所有像素点的个数。

 1、计算并显示直方图

cv2.calcHist(images,channels,mask,histSize,ranges)  计算图像的直方图,用于表示图像中像素灰度级别的分布情况.
images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]

channels: 表示传入的图像通道数。如果输入图像是灰度图它的值就是 [0]。
          如果是彩色图像 的传入的参数可以是 [0][1][2] 它们分别对应着 BGR。

mask: 掩模图像。统计整幅图像的直方图就把它为None。但是如果你想统计图像某一部分的直方图,你就制作一个掩模图像并使用它。

histSize:BINS的数目。也需用中括号括来   (分成多少个区间)
  BINS :上面的直方图显示了每个像素值的像素数,即从0到255。即您需要256个值才能显示上述直方图。
      但是请考虑一下,如果您不需要单独查找所有像素值的像素数,而是在像素值间隔内查找像素数,
      例如,您需要找到介于 0 到 15 之间的像素数,然后是 16 到 31、32到47...、240 到 255。
      您只需要 16 个值来表示直方图。
因此,只需将整个直方图拆分为 16 个子部分,每个子部分的值就是其中所有像素计数的总和。
这每个子部分都称为"BIN"。在第一种情况下,条柱数为256(每个像素一个),而在第二种情况下,它只有16。BINS 在 OpenCV 文档中由术语histSize表示。

ranges: 像素值范围常为 [0 256]

2、使用matplotlib方法绘制直方图(不划分小的子区间)

 这里使用了 numpy 的 ravel 函数,将多维数组拉成一维数组。

img =cv2.imread('../data/310.jpg',cv2.IMREAD_GRAYSCALE)# 转成一维
a=img.ravel()# 使用 matplotlib 的 hist 函数绘制直方图。
plt.hist(a,bins=256)
plt.show()# 参数解释:
# - a:一维数组,即图像的像素值组成的数组。
# - bins=256:指定直方图的条数,即灰度级的数量。

效果:可以看出下面结果中有0~256的亮度值的统计情况 

 

3、使用opencv的方法绘制直方图 (划分16个小的子亮度区间)

#这里的calcHist参数在上面有介绍,这里是对img图片做直方图统计,采用灰度图,即零通道,未设置掩膜,划分为16个区间,亮度值统计[0,256]的值
phone_hist = cv2.calcHist([img],[0],None,[16],[0,256])
plt.plot(phone_hist)#使用calcHist的值绘制曲线图
plt.show()

效果,统计的值为每个亮度区间内属于该亮度值的像素点个数

4、绘制彩色图像的直方图,将各个通道的直方图值都画出来

img=cv2.imread('zl.jpg')
color=('b','g','r')    #设置绘制的折线图每条线的颜色
for i,col in enumerate(color):    #依次遍历三个颜色通道histr=cv2.calcHist([img],[i],None,[256],[0,256])    #依次计算每个通道的直方图值plt.plot(histr,color=col)    #绘制折线图
plt.show()

效果:分别统计了不同颜色通道下的直方图

二、直方图均衡化

直方图均衡化:直方图均衡化是一种图像增强技术,它可以通过增加图像的对比度和亮度来改善图像的质量。直方图均衡化通过将图像的像素值分布均匀化来实现这一目标。
在Python OpenCV中,可以使用cv2.equalizeHist()函数来实现直方图均衡化。该函数将输入图像转换为灰度图像,并将其像素值分布均匀化,从而增强图像的对比度和亮度。下面是将不均衡的直方图均衡化之后的结果。

(1)绘制原图的直方图

woman = cv2.imread('ja.jpg',cv2.IMREAD_GRAYSCALE)
# # # phone_hist = cv2.calcHist([phone],[0],None,[256],[0,256])
plt.hist(woman.ravel(), bins=256)#numpy中的ravel将数组多维度拉成一维数组
plt.show()

 可以看出图像的亮度值集中在50左右

 

 (2)绘制经过直方图均衡化后的图片的直方图

phone_equalize = cv2.equalizeHist(woman)
plt.hist(phone_equalize.ravel(), bins=256)#numpy中的ravel将数组多维度拉成一维数组
plt.show()

与原图对比,直方图均衡化是对全局做均衡化,这使亮度值很大的像素点增多了,表现在图像上就是图像整体变亮。 

 

(3)自适应直方图均衡化(局部直方图处理)

普通直方图均衡化(HE)通过全局灰度变换增强对比度,但对噪声敏感且可能过度放大局部噪声(如暗部噪声)。自适应直方图均衡化(AHE) 将图像划分为多个子块(tiles),对每个子块独立进行直方图均衡化,从而实现局部对比度增强,避免全局均衡化的缺陷。

改进版:限制对比度的自适应直方图均衡化(CLAHE, Contrast-Limited AHE):在 AHE 基础上,通过设定灰度值裁剪阈值(clip limit),防止子块内噪声或纹理被过度增强,是实际应用中更常用的方法。

主要优点

  • 局部对比度增强:针对不同区域的局部特征调整对比度,适合光照不均或局部细节丰富的图像(如医学影像、卫星图像)。
  • 抑制噪声放大:通过裁剪阈值(clip limit)限制子块内直方图的峰值,避免噪声或纹理被过度增强。
  • 保留细节与自然感:相比全局均衡化,CLAHE 在增强局部细节的同时,减少过增强导致的伪影(如棋盘效应)。

函数:cv2.createCLAHE([, clipLimit[, tileGridSize]]) 

参数说明:
clipLimit:设定子块内直方图均衡化时的灰度值裁剪阈值,单位为 “像素数 / 面积”(即每个灰度级允许的最大像素数密度)。可选项,默认值 8
titleGridSize:设定子块的大小(行数 × 列数),单位为像素。可选项,默认值 (8,8)。
  • titleGridSize取值影响
    • 较小尺寸(如 4x4):局部细节增强更精细,但计算量增加,可能引入棋盘效应(需通过插值缓解)。
    • 较大尺寸(如 16x16):局部处理更粗糙,适合全局对比度增强需求,减少分块边界的影响。

创建一个自适应直方图对像,并将上面的woman这张图像传入

clahe = cv2.createCLAHE(clipLimit=1, tileGridSize=(16,16))#通过类创建了一个局部均衡化对象
phone_clahe = clahe.apply(woman)
plt.hist(phone_clahe.ravel(), bins=256)#numpy中的ravel将数组多维度拉成一维数组
plt.show()

自适应直方图均衡化则是划分子块均衡化会减少分块边界的影响。 

 使用hstack()函数水平堆叠上面的三张图片用于对比,直方图均衡化与自适应直方图均衡化的区别

  • hstackhconcat):水平堆叠,沿列方向扩展。
  • vstackvconcat):垂直堆叠,沿行方向扩展(对应函数为 np.vstack 和 cv2.vconcat)。
res = np.hstack((woman,phone_equalize,phone_clahe))
cv2.imshow('phone_equalize',res)
cv2.waitKey(0)

 从左到右依次是原图、直方图均衡化、自适应直方图均衡化

三、直方图均衡化的应用

1. 增强图像对比度

  • 原理:将图像中原本集中的灰度范围 “拉伸” 到更宽的动态范围,使图像中不同灰度级的像素分布更均匀(直方图趋于平坦)。
  • 效果:让原本对比度低、细节模糊的图像(如暗部过暗或亮部过亮)变得更清晰,暗部和亮部的细节更容易分辨。
  • 示例:在医学影像(如 X 光片)中,均衡化可增强组织间的对比度,便于医生观察病灶。

2. 提升图像视觉效果

  • 通过均衡化,图像中原本难以区分的灰度区域(如相近的明暗过渡)会变得层次分明,整体视觉效果更自然。
  • 例如:修复老照片时,均衡化可改善因曝光不足或过度导致的细节丢失。

3. 统一图像灰度分布

  • 将图像的灰度直方图调整为近似均匀分布,使像素灰度值覆盖更广泛的范围。
  • 这为后续的图像处理任务(如图像分割、特征提取、模式识别等)提供更优质的输入,提升算法效果。

4. 适用于低对比度图像

  • 特别适合处理因光照不均、传感器噪声等导致对比度低下的图像(如阴天拍摄的照片、卫星遥感图像),通过均衡化恢复图像细节。

总结

直方图均衡化通过重新分配像素的灰度值,将图像的动态范围最大化利用,使图像从 “对比度不足” 转变为 “层次丰富”,是图像处理中基础且高效的增强手段。其本质是通过数学变换(累积分布函数,CDF)实现灰度的非线性映射,从而优化视觉效果和后续处理的可行性。


文章转载自:

http://WuvpHiJQ.dqrhz.cn
http://4wxQBXXK.dqrhz.cn
http://IWL981Oh.dqrhz.cn
http://zWpR2vy8.dqrhz.cn
http://yWuUvi7C.dqrhz.cn
http://lM3iWNIX.dqrhz.cn
http://7kMuApQQ.dqrhz.cn
http://hG4Hgxkl.dqrhz.cn
http://C7vPKT36.dqrhz.cn
http://DmztyGZJ.dqrhz.cn
http://a4i4U20O.dqrhz.cn
http://0SfTucB6.dqrhz.cn
http://RUSi7lIL.dqrhz.cn
http://dzxkMBE8.dqrhz.cn
http://55lUiisO.dqrhz.cn
http://HGE6bcDP.dqrhz.cn
http://Jh4A4Jk5.dqrhz.cn
http://mUkgMfgd.dqrhz.cn
http://vC9YQ9H7.dqrhz.cn
http://R6t4zBRo.dqrhz.cn
http://iqGc6obm.dqrhz.cn
http://lu77oF3u.dqrhz.cn
http://IGUVDSXm.dqrhz.cn
http://Ab6TYEEd.dqrhz.cn
http://u25iTFnT.dqrhz.cn
http://W9zZmiuE.dqrhz.cn
http://UEcHTaE5.dqrhz.cn
http://kMOQwWAL.dqrhz.cn
http://9jNTOnM5.dqrhz.cn
http://tcGXiEG7.dqrhz.cn
http://www.dtcms.com/wzjs/612246.html

相关文章:

  • 任何用c语言做网站唐山诚达建设集团网站
  • 计算机网站怎么做双八网站建设
  • 电子商务中网站建设wordpress 排名插件
  • 成都哪些公司可以做网站建设网站的情况说明
  • 做个 公司网站多少钱北京seowyhseo
  • 凡科免费建站平台获奖设计网站
  • 怀化订水网站外贸公司网站
  • 免费手机个人网站html手机网站开发教程
  • 网站seo分析常用的工具是网站建设培训速成
  • 制作网页用什么进行页面布局保定seo外包服务商
  • w7自己做网站营销型网站整体优化
  • 佛山外贸网站北京做网站建设的公司排名
  • 欧洲外贸网站有哪些门类细分网站
  • 263企业邮箱登录官网seo服务公司排名
  • 江阴网站优化公司寿光网站建设
  • 建设网站最好的免费服务器有哪些
  • 网站建设服务收费标准学做网站多久
  • 十大卖衣服网站上海比较好的网站建设公司
  • 网站上的qq咨询怎么做wordpress不能登录
  • 重庆奉节网站建设宁波网站建设外包
  • 怎么在网站标头做图标广州建论坛网站
  • 此网站正在建设中页面网站建设培训教程 新手入门到精通
  • 网站建设玖金手指排名11网站字体加载不出来怎么办
  • p2p网站建设报价wordpress重置密碼
  • wordpress多站点 文章做网站开发学什么内容
  • 装修效果图网站推荐seo关键词优化服务
  • 广州公司网站提供ios开发软件
  • 系统 网站开发工程师做网站准备什么软件
  • 上海网站建设网页制作你却装饰装潢设计
  • 重庆网站建设建站收费微信公众平台开发者工具