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

上饶网站制作需要多少钱x网站免费模板免费下载

上饶网站制作需要多少钱,x网站免费模板免费下载,网站改成html5,100种禁用的视频软件短视频1 opencv的直方图 1.1 什么是直方图 直方图是对数据进行统计的一种方法#xff0c;用于显示数据中各个数值或数值范围的分布情况。它将数据划分为一系列的区间#xff08;也称为“箱子”或“bin”#xff09;#xff0c;然后统计每个区间中数据出现的频次#xff08;或频…1 opencv的直方图 1.1 什么是直方图 直方图是对数据进行统计的一种方法用于显示数据中各个数值或数值范围的分布情况。它将数据划分为一系列的区间也称为“箱子”或“bin”然后统计每个区间中数据出现的频次或频率。bin的数值可以是梯度、方向、色彩或任何其他特征。直方图可以帮助我们更好地理解数据的分布特征包括集中趋势、离散程度等。 直方图在许多领域有重要的应用包括统计学、图像处理、数据分析等。在图像处理中直方图可以用来分析图像的像素值分布从而进行图像增强、对比度调整、图像分割等操作。在统计学中直方图可以帮助我们了解数据的分布情况如正态分布、偏态分布等。通过观察直方图我们可以对数据的特征有更深入的了解从而做出更准确的决策和分析 直方图的主要特点如下 横轴X 轴 横轴表示数据的数值范围或区间。每个区间通常由两个数值来表示例如0-10、10-20 等。 纵轴Y 轴 纵轴表示每个区间中数据的频次或频率也就是该区间内数据出现的次数。 条形图 直方图的图形由一系列的矩形条组成每个矩形条的宽度表示区间的宽度高度表示该区间内数据的频次。 连续数据 直方图适用于连续型数据例如测量数据、时间数据等。对于离散型数据柱状图可能更为适合。 1.2 什么是图像直方图 图像直方图 (Image Histogram)是用以表示数字图像中亮度分布的直方图标绘了图像中每个亮度值的像素个数。在图像直方图中横坐标的左侧为纯黑、较暗的区域而右侧为较亮、纯白的区域。因此一张较暗图片的直方图中的数据多集中于左侧和中间部分而整体明亮、只有少量阴影的图像则相反图像里各种灰度级出现的次数作出的图形。 横坐标: 图像中各个像素点的灰度级.比如像素的值都是在0-255之间每个具体的数值就是一个灰度级  纵坐标: 具有该灰度级的像素个数. 注意 直方图是根据灰度图进行绘制的而不是彩色图像。 1.3 图像直方图的含义 例如有一幅图像如图 13-1 所示。该图中只有 9 个像素点存在 1、2、3、4、5共 5 个灰度级。 统计各个灰度级出现的次数如表 13-1 所示 在绘制直方图时将灰度级作为 x 轴处理该灰度级出现的次数作为 y 轴处理则可知 x 轴的数据为 x[1 2 3 4 5]。y 轴的数据为 y[3 1 2 1 2]。 根据上述关系可以绘制出如图 13-2 所示的折线图左图和直方图右图。一般情况下我们把左侧的直线图和右侧直方图都称为直方图。 在实际处理中图像直方图的 x 轴区间一般是[0, 255]对应的是 8 位位图的 256 个灰度级y 轴对应的是具有相应灰度级的像素点的个数。 例如在图 13-3 中上图是一张图像下图则是其对应的直方图。图中圆点表示这些像素点会被统计到对应的灰度级上。 虽然 8 位的图像都具有 256 个灰度级每一个像素可以有 256 个灰度值但是属于不同灰度级的像素数量是很不一样的。 例如图 13-4从图中可以看出图像的不同部分直方图是不一样的。 有时为了便于表示也会采用归一化直方图。在归一化直方图中x 轴仍然表示灰度级y轴不再表示灰度级出现的次数而是灰度级出现的频率。 例如针对图 13-1统计各个灰度级出现的频率 灰度级出现的频率 灰度级出现的次数/总像素数 在图 13-1 中共有 9 个像素所以统计结果如表 13-2 所示。 在归一化直方图中各个灰度级出现的频率之和为 1。例如本例中 在绘制直方图时将灰度级作为 x 轴数据处理将其出现的频率作为 y 轴数据处理则可知 x 轴的数据为 x[1 2 3 4 5] y 轴的数据为 y[3/9 1/9 2/9 1/9 2/9] 根据上述关系可以绘制出如图 13-5 所示的归一化直方图。对比图 13-4 与图 13-5可以看到归一化直方图与直方图在外观上是一致的只是 y 轴的标签不同而已。 本例中在直方图内y 轴显示的标签是 1、2、3在归一化直方图中y 轴显示的标签是 1/9、2/9、3/9。 在 OpenCV 的官网上特别提出了要注意三个概念DIMS、BINS、RANGE。 DIMS表示在绘制直方图时收集的参数的数量。一般情况下直方图中收集的数据只有一种就是灰度级。因此该值为 1。 RANGE表示要统计的灰度级范围一般为[0, 255]。0 对应的是黑色255 对应的是白色。 BINS参数子集的数目。在处理数据的过程中有时需要将众多的数据划分为若干个组再进行分析。 例如针对图 13-1 中的灰度级你可能希望将两个像素值作为一组讨论。这样整个灰度级被划分为三组具体为{ {1,2} , {3,4} , {5} }。图 13-6 所示的是划分前后的直方图情况。 也可以按照上述方式对灰度图像进行划分。例如在灰度图像中将[0, 255]区间内的 256个灰度级按照每 16 个像素一组划分为子集 [0, 255] [0, 15] ∪ [16, 31] ∪…∪[240, 255] 按照上述方式整个灰度级范围可以划分为 16 个子集具体为 整个灰度级范围 bin1 ∪ bin2 ∪…∪ bin16 子集划分完以后某灰度图像生成的直方图如图 13-7 所示图中的 b1 代表 bin1b2 代表bin2以此类推。 下面讨论 BINS 的值 针对图 13-1在原始图像中共有 5 个灰度级其 BINS 值为 5。在以 2 个灰度级为一个小组划分子集后得到 3 个子集其 BINS 值为 3。 针对灰度图像灰度级区间为[0, 255]共有 256 个灰度级其 BINS 值为 256在以 16个灰度级为一个小组划分子集后其 BINS 值为 16。 BINS就是柱子的数量。 1.4 图像直方图的应用 图像直方图是图像处理和分析中的一个基本工具它统计了图像中每个像素强度值的频率分布。图像直方图在多个方面对于理解和操作图像至关重要。 图像增强 对比度调整 直方图可以用于增强图像的对比度。例如直方图均衡化是一种常用的技术通过均匀分布直方图中的像素强度可以提高图像的全局对比度。如果是曝光过度可以减少补光如果光线不够可以补光 自动亮度和对比度调整 分析直方图自动确定最佳的亮度和对比度设置以改善图像质量。 阈值处理 图像分割 直方图可以用于确定分割图像的最佳阈值特别是在二值化处理中。这在文档扫描和对象识别等领域特别有用。 背景和前景分离 在简单背景的图像中直方图可以帮助区分背景和前景对象。 图像分析 灰度分布分析 直方图提供了图像中像素强度的分布情况有助于分析图像的明暗结构和内容。 纹理分析 直方图的形状和分布可以用来分析图像的纹理特征。 颜色处理 颜色平衡 在彩色图像处理中可以分别对红、绿、蓝三个颜色通道的直方图进行调整以实现颜色平衡。 颜色分割和识别 利用颜色直方图来识别和分割图像中的特定颜色区域。 图像恢复 噪声识别和过滤 直方图有助于识别图像中的噪声模式并可以指导选择适当的噪声过滤技术。 2 Numpy绘制直方图 模块 matplotlib.pyplot 提供了一个类似于 MATLAB 绘图方式的框架可以使用其中的matplotlib.pyplot.hist()函数以下简称为 hist()函数来绘制直方图。 此函数的作用是根据数据源和灰度级分组绘制直方图。其基本语法格式为 matplotlib.pyplot.hist(XBINS)参数描述 X数据源必须是一维的。图像通常是二维的需要使用 ravel()函数将图像处理为一维数据源以后再作为参数使用。 BINSBINS 的具体值表示灰度级的分组情况。 函数 ravel()的作用是将二维数组降维成一维数组。 import cv2 import matplotlib.pyplot as pltimage cv2.imread(../data/ship.jpg) gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) plt.hist(image.ravel(), 256) plt.show() 运行代码显示 使用函数 hist()将一幅图像的灰度级划分为 16 组后绘制该图像的直方图。 import cv2 import matplotlib.pyplot as pltimage cv2.imread(../data/ship.jpg) gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) plt.hist(image.ravel(), 16) plt.show() 运行代码显示 3 opencv绘制直方图 OpenCV 提供了函数 cv2.calcHist()用来计算图像的统计直方图该函数能统计各个灰度级的像素点个数。利用matplotlib.pyplot 模块中的 plot()函数可以将函数 cv2.calcHist()的统计结果绘制成直方图 3.1 用cv2.calcHist()绘制直方图 hist cv2.calcHist( images, channels, mask, histSize, ranges, accumulate ) 参数及返回值 hist返回的统计直方图是一个一维数组数组内的元素是各个灰度级的像素个数。 images原始图像该图像需要使用“[ ]”括起来。 channels指定通道编号。通道编号需要用“[ ]”括起来如果输入图像是单通道灰度图像该参数的值就是[0]。对于彩色图像它的值可以是[0]、[1]、[2]分别对应通道B、G、R。 mask掩模图像。当统计整幅图像的直方图时将这个值设为 None。当统计图像某一部分的直方图时需要用到掩模图像。 histSizeBINS 的值该值需要用“[ ]”括起来。例如BINS 的值是 256需要使用“[256]”作为此参数值。 ranges即像素值范围。例如8 位灰度图像的像素值范围是[0, 255]。 accumulate累计累积、叠加标识默认值为 False。如果被设置为 True则直方图在开始计算时不会被清零计算的是多个直方图的累积结果用于对一组图像计算直方图。该参数允许从多个对象中计算单个直方图或者实时更新直方图。该参数是可选的一般情况下不需要设置。 示例代码 import cv2 import matplotlib.pyplot as pltimg cv2.imread(../data/ship.jpg) hist cv2.calcHist([img], [0], None, [16], [0, 255]) print(type(hist)) print(hist.shape) print(hist.size) print(hist)plt.plot(hist, colorb) plt.show() 运行代码显示 class numpy.ndarray (16, 1) 16 [[7.855000e03][1.507600e04][8.501000e03][9.885000e03][9.599000e03][5.452000e03][6.495000e03][1.184100e04][2.672000e04][1.451440e05][3.919380e05][1.306336e06][1.253990e05][3.002000e03][3.080000e02][4.400000e01]] 3.2 直方图均衡化 如果一幅图像拥有全部可能的灰度级并且像素值的灰度均匀分布那么这幅图像就具有高对比度和多变的灰度色调灰度级丰富且覆盖范围较大。在外观上这样的图像具有更丰富的色彩不会过暗或过亮。 图 13-22 展示了对一幅图像进行直方图均衡化前后的对比左图是原始图像比较暗右图是均衡化后的图像色彩比较均衡。 在 OpenCV 的官网上对图像均衡化即直方图均衡化前后的直方图进行了对比如图13-23 所示。其中左图是原始图像的直方图可以看到灰度级集中在中间图像中没有较暗和较亮的像素点右图是对原图均衡化后的直方图像素分布更均衡。 直方图均衡化的主要目的是将原始图像的灰度级均匀地映射到整个灰度级范围内得到一个灰度级分布均匀的图像。这种均衡化既实现了灰度值统计上的概率均衡也实现了人类视觉系统Human Visual SystemHVS上的视觉均衡。 OpenCV 使用函数 cv2.equalizeHist()实现直方图均衡化。该函数的语法格式为  dst cv2.equalizeHist( src )dst 是直方图均衡化处理的结果。 src 是 8 位单通道原始图像。 示例代码 import cv2 import matplotlib.pyplot as plt img cv2.imread(../data/girl_008.jpg, cv2.IMREAD_GRAYSCALE) equ_img cv2.equalizeHist(img)plt.subplot(1, 2, 1) plt.imshow(img, cmapgray)plt.subplot(1, 2, 2) plt.imshow(equ_img, cmapgray)plt.figure(原始图像直方图) plt.hist(img.ravel(), 256) plt.figure(均衡化结果直方图) plt.hist(equ_img.ravel(), 256) plt.show() 运行代码显示 图片均衡化效果很明显在直方图均衡化之前图像整体比较亮均衡化以后图像的亮度变得比较均衡。而两幅图像的直方图的对比则不太明显。这实际上体现了均衡化是指综合考虑了统计概率和 HVS 的结果。 补充说明 原始图像的直方图大部分的像素值集中在右侧线条密集。这说明图像中位于[200,255]区间的像素点很多图像比较亮。 在均衡化后的直方图中左侧的像素点比较密集而右侧的相对比较稀疏。但是实际上人眼并不能明显感受到像素值的细微差别所以我们可以将相近的像素值看成同一个像素值这样就会得到类似于图 13-29 的直方图。此时直方图内灰度级的分布就比较均衡了是均衡一致的直方图。 3.3 自适应的直方图均衡化 直方图均衡化中考虑的是图像全局的对比度许多情况下会由于均衡化而丢失许多信息为了解决此问题需要使用自适应的直方图均衡化此时整幅图片被分成许多小块称为tiles(在OpenCV中tiles的大小默认是8x8)然后再对每一个小块分别进行直方图均衡化。如果有噪声的话噪声会被放大。为了避免这种情况的出现要使用对比度限制。对于每个小块来说如果直方图中的bin超过对比度的上限的话就把其中的像素点均匀分散到其他bins中然后在进行直方图均衡化。最后使用双线性差值对每一小块进行拼接 cv.createCLAHE(clipLimit,tileGridSize) 参数 clipLimit:对比度限制默认是40 tileGridSize:分块的大小默认8*8 示例代码 import matplotlib.pyplot as plt import cv2 img cv2.imread(../data/girl_008.jpg, cv2.IMREAD_GRAYSCALE)# 创建一个自适应均衡化对象 cl cv2.createCLAHE(2.0, (8, 8)) # 将其应用于图像 clahe cl.apply(img)plt.subplot(1, 2, 1) plt.imshow(img, cmapgray)plt.subplot(1, 2, 2) plt.imshow(clahe, cmapgray) plt.show() 运行代码显示 3.4 使用掩膜的直方图(mask) 掩膜对图片的某一个区域进行操作 如何生成掩膜 先生成一个全黑的和原始图片大小一样大的图片. mask np.zeros(image.shape, np.uint8)将想要的区域通过索引方式设置为255. 例如mask[100:200, 200: 300] 255通过cv2.bitwise_and( )将image和mask进行与运算得到image_mask掩膜图像 示例代码 import cv2 import matplotlib.pyplot as plt import numpy as nplena cv2.imread(../data/lena.jpeg) gray cv2.cvtColor(lena, cv2.COLOR_BGR2GRAY)# 生成掩膜图像, shape的形状要和gray一致 mask np.zeros(gray.shape, np.uint8)# 设置想要统计直方图的区域 mask[400:800, 400: 800] 255# 对mast和gray进行直方图统计对比 hist_mask cv2.calcHist([gray], [0], mask, [256], [0, 255]) hist_gray cv2.calcHist([gray], [0], None, [256], [0, 255])plt.plot(hist_mask, labelmask) plt.plot(hist_gray, labelgray) plt.show()plt.subplot(1, 3, 1) plt.imshow(mask, cmapgray) plt.subplot(1, 3, 2) plt.imshow(gray, cmapgray) plt.subplot(1, 3, 3) plt.imshow(cv2.bitwise_and(gray, mask), cmapgray) plt.show()运行代码显示
http://www.pierceye.com/news/291423/

相关文章:

  • 开奖网站怎么做wordpress4.9.8中文版
  • 国外做任务的网站网推公司
  • 国外有在线做设计方案的网站吗为什么用Vue做网站的很少
  • 网站一定要备案网站建设与维护工作
  • 锦江区建设和交通局网站怎样在网上建立平台
  • 网站维护升级访问中六安论坛网站
  • ppt模板网站哪个免费重庆手机版建站系统哪家好
  • 35岁学设计晚不晚北京网站快速排名优化
  • 网站建设三合一 500元阜阳网站建设公司
  • 那些公司需要网站开发工程师网页开发与网站开发
  • 手机端网站如何做排名wordpress no7
  • 搭建网站什么意思o2o的典型电子商务平台
  • vs2013网站开发教程wordpress站内搜索框
  • 素材网站怎么做利用小程序反向做网站
  • 怎么自己做网站地图做网站详细步骤
  • 做网站的整体风格确定方式郑州seo代理外包
  • 语种网站建设沭阳做网站好的
  • wordpress网站换字体颜色网站建设案例包括哪些
  • 北京市环境建设办公室网站怎么找到合适的网站建设商
  • 网站在线优化中国品牌加盟网
  • 网站可以做章子吗什么是网络营销?其特点是什么?
  • 网站优化人员中小型网站设计公司
  • 旅游网网站的设计wordpress添加网页背景图片大小
  • 学网站建设难不难wordpress5分钟安装
  • 建网站优化中山做网站专业的公司
  • 网站cmd做路由分析七牛云官网登录
  • 怎么在网站上打广告网站制作方案范文
  • 关键词搜不到我的网站wordpress 内网访问
  • 检察机关门户网站建设工作自查报告网站建设服务领域
  • 网站排名seo软件泉州高端模板建站