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

杭州企业建设网站公司网页设计这个行业怎么样

杭州企业建设网站公司,网页设计这个行业怎么样,制作网站设计的公司,手机网站模板设计软件OpenCV官方教程中文版 —— 直方图均衡化 前言一、原理二、 OpenCV 中的直方图均衡化三、 CLAHE 有限对比适应性直方图均衡化 前言 本小节我们要学习直方图均衡化的概念#xff0c;以及如何使用它来改善图片的对比。 一、原理 想象一下如果一副图像中的大多是像素点的像素值… OpenCV官方教程中文版 —— 直方图均衡化 前言一、原理二、 OpenCV 中的直方图均衡化三、 CLAHE 有限对比适应性直方图均衡化 前言 本小节我们要学习直方图均衡化的概念以及如何使用它来改善图片的对比。 一、原理 想象一下如果一副图像中的大多是像素点的像素值都集中在一个像素值范围之内会怎样呢例如如果一幅图片整体很亮那所有的像素值应该都会很高。但是一副高质量的图像的像素值分布应该很广泛。所以你应该把它的直方图做一个横向拉伸如下图这就是直方图均衡化要做的事情。通常情况下这种操作会改善图像的对比度。 推荐你去读读维基百科中关于直方图均衡化的条目。其中的解释非常给力读完之后相信你就会对整个过程有一个详细的了解了。我们先看看怎样使用Numpy 来进行直方图均衡化然后再学习使用 OpenCV 进行直方图均衡化。 # -*- coding: utf-8 -*- import cv2 import numpy as np from matplotlib import pyplot as plt img cv2.imread(wiki.png, 0) # flatten() 将数组变成一维 hist, bins np.histogram(img.flatten(), 256, [0, 256]) # 计算累积分布图 plt.figure() plt.subplot(1,2,1) plt.imshow(img, cmap gray, interpolation bicubic) plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis plt.tight_layout() plt.subplot(1,2,2) cdf hist.cumsum() cdf_normalized cdf * hist.max() / cdf.max() plt.plot(cdf_normalized, colorb) plt.hist(img.flatten(), 256, [0, 256], colorr) plt.xlim([0, 256]) plt.legend((cdf, histogram), locupper left) plt.tight_layout() plt.show()我们可以看出来直方图大部分在灰度值较高的部分而且分布很集中。而我们希望直方图的分布比较分散能够涵盖整个 x 轴。所以我们就需要一个变换函数帮助我们把现在的直方图映射到一个广泛分布的直方图中。这就是直方图均衡化要做的事情。 图均衡化要做的事情。我们现在要找到直方图中的最小值除了 0并把它用于 wiki 中的直方图均衡化公式。但是我在这里使用了 Numpy 的掩模数组。对于掩模数组的所有操作都只对 non-masked 元素有效。你可以到 Numpy 文档中获取更多掩模数组的信息。 # 构建 Numpy 掩模数组cdf 为原数组当数组元素为 0 时掩盖计算时被忽略。 cdf_m np.ma.masked_equal(cdf,0) cdf_m (cdf_m - cdf_m.min())*255/(cdf_m.max()-cdf_m.min()) # 对被掩盖的元素赋值这里赋值为 0 cdf np.ma.filled(cdf_m,0).astype(uint8)现在就获得了一个表我们可以通过查表得知与输入像素对应的输出像素的值。我们只需要把这种变换应用到图像上就可以了。 img2 cdf[img]我们再根据前面的方法绘制直方图和累积分布图结果如下 另一个重要的特点是即使我们的输入图片是一个比较暗的图片不象上边我们用到到的整体都很亮的图片在经过直方图均衡化之后也能得到相同的结果。因此直方图均衡化经常用来使所有的图片具有相同的亮度条件的参考工具。这在很多情况下都很有用。例如脸部识别在训练分类器前训练集的所有图片都要先进行直方图均衡化从而使它们达到相同的亮度条件。 二、 OpenCV 中的直方图均衡化 OpenCV 中的直方图均衡化函数为 cv2.equalizeHist()。这个函数的输入图片仅仅是一副灰度图像输出结果是直方图均衡化之后的图像。 下边的代码还是对上边的那幅图像进行直方图均衡化 # -*- coding: utf-8 -*- import cv2 import numpy as np from matplotlib import pyplot as pltimg cv2.imread(wiki.png, 0) equ cv2.equalizeHist(img) res np.hstack((img, equ))plt.figure() plt.imshow(res, cmapgray, interpolationbicubic) plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis plt.show() 现在你可以拿一些不同亮度的照片自己来试一下了。 当直方图中的数据集中在某一个灰度值范围内时直方图均衡化很有用。但是如果像素的变化很大而且占据的灰度范围非常广时例如既有很亮的像素点又有很暗的像素点时。 三、 CLAHE 有限对比适应性直方图均衡化 我们在上边做的直方图均衡化会改变整个图像的对比度但是在很多情况下这样做的效果并不好。例如下图分别是输入图像和进行直方图均衡化之后的输出图像。 的确在进行完直方图均衡化之后图片背景的对比度被改变了。但是你再对比一下两幅图像中雕像的面图由于太亮我们丢失了很多信息。造成这种结果的根本原因在于这幅图像的直方图并不是集中在某一个区域试着画出它的直方图你就明白了。 为了解决这个问题我们需要使用自适应的直方图均衡化。这种情况下整幅图像会被分成很多小块这些小块被称为“tiles”在 OpenCV 中 tiles 的大小默认是 8x8然后再对每一个小块分别进行直方图均衡化跟前面类似。所以在每一个的区域中直方图会集中在某一个小的区域中除非有噪声干扰。如果有噪声的话噪声会被放大。为了避免这种情况的出现要使用对比度限制。对于每个小块来说如果直方图中的 bin 超过对比度的上限的话就把其中的像素点均匀分散到其他 bins 中然后在进行直方图均衡化。最后为了去除每一个小块之间“人造的”由于算法造成边界再使用双线性差值对小块进行缝合。 下面的代码显示了如何使用 OpenCV 中的 CLAHE。 # -*- coding: utf-8 -*- import cv2 import numpy as np from matplotlib import pyplot as plt img cv2.imread(tsukuba_l.png, 0) clahe cv2.createCLAHE(clipLimit2.0, tileGridSize(8,8)) cl1 clahe.apply(img) res np.hstack((img, cl1)) plt.figure() plt.imshow(res, cmapgray, interpolationbicubic) plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis plt.show()下面就是结果了与前面的结果对比一下尤其是雕像区域
http://www.hkea.cn/news/14369110/

相关文章:

  • 沧州手机网站包装设计流程
  • 甘肃网站建设公司如何做网赌网站
  • 网站在建设中无法访问免费商城建站平台
  • 中国移动网站官网维护一个网站一年多少钱
  • 手机网站建设找哪家聚名网是什么
  • 下载免费网站模板手机网站建设技术方案书
  • 哪个女装网站做的好住建培训网站
  • 怎样建设团学组织微信网站重庆建设摩托车价格
  • 网站建设论文伯乐在线邀人做任务比较好的发布网站
  • app和网站的成本区别中卫市建设局网站 冯进强
  • 网站页面标题设置wordpress如何将文章链接
  • 昌吉哪个公司做网站临沂h5建站
  • 给别人做网站要问什么问题网站系统规划报告
  • 网站怎么上百度建站之星安装说明
  • 电子商务网站建设需要知识网页版梦幻西游五色石攻略
  • 公司网站可以自己做便民信息免费发布平台
  • 福田网站建设龙岗网站建设龙岗网站建设网站 工商备案
  • 什么浏览器好用可以看任何网站wordpress 中文插件大全
  • 深圳龙岗网站建设哪家好公司网站仿制
  • 根据颜色找网站做网站建设小程序
  • 西宁网站建设平台公司重庆百度竞价排名
  • 建设注册证信息网站网站建设外包服务管理情况
  • 南阳旅游网站建设珠宝网站开发
  • 备案网站能打开吗企业形象设计论文2000字
  • 郑州网站建设最低价莱芜金点子广告电子版
  • 梦想小镇旅游官方网站建设自己做的网站怎么上传网络
  • 网站后台都有哪些html成品源代码
  • 盗版小说网站建设做公司集团网站
  • 怎么查看网站是用什么系统做的抖音代运营协议模板
  • 微网站wordpress iis内存高