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

国企公司网站制作三室两厅装修

国企公司网站制作,三室两厅装修,蓝色经典通用网站模板html源码下载,如何做网站主题目标 了解直方图的原理及应用使用OpenCV 或Numpy 函数计算直方图使用Opencv 或者Matplotlib 函数绘制直方图学习函数cv2.calcHist()、np.histogram()等 原理及应用 直方图是一种统计图形#xff0c;是对图像的另一种解释#xff0c;用于表示图像中各个像素值的频次分布。直…目标 了解直方图的原理及应用使用OpenCV 或Numpy 函数计算直方图使用Opencv 或者Matplotlib 函数绘制直方图学习函数cv2.calcHist()、np.histogram()等 原理及应用 直方图是一种统计图形是对图像的另一种解释用于表示图像中各个像素值的频次分布。直方图的x 轴是灰度值0 到255)y 轴是图片中具有同一个灰度值的点的数目。通过直方图你可以对整幅图像的灰度分布、对比度、亮度等有一个整体的了解。在计算机视觉中直方图是一种常用的图像特征描述方法可以用于图像处理、图像分割、图像匹配等应用几乎所有的图像处理软件提供了直方图分析功能。 在图像处理中直方图可以用于对图像进行增强、对比度调整、色彩均衡等操作。通过分析图像的直方图可以了解图像的亮度分布情况进而进行亮度调整使图像更加清晰、明亮或暗淡。 在图像分割中直方图可以用于选择合适的阈值进行图像分割。通过分析图像的直方图可以找到合适的阈值将图像分成不同的区域达到目标检测和图像分割的目的。 在图像匹配中直方图可以用于计算图像之间的相似度。通过比较两幅图像的直方图可以得到它们的相似程度从而实现图像的匹配和检索。 我们来分析上面幅图片和它的直方图(要记住直方图是根据灰度图像绘制的而不是彩色图像)。直方图的左边区域像是暗一点的像素数量右侧显示了亮一点的像素的数量。从这幅图上你可以看到灰暗的区域比亮的区域大而处于中间部分的像素点很少。  参考以下连接获取更多相关信息https://www.cambridgeincolour.com/tutorials/histograms1.htm 统计直方图  现在我们知道什么是直方图了那么我们应该怎样获得一副图像的直方图呢OpenCV 和Numpy 有内置函数做这件事。在使用这些函数之前我们有必要了解一下直方图相关的术语。 BINS 上面的直方图显示了每个像素灰度值对应的像素数目。如果像素值为0到255你就需要256 个数来显示上面的直方图。但是如果你不需要知道每一个像素值的像素点数目而只希望知道两个像素值之间的像素点数目怎么办呢举例来说我们想知道像素值在0 到15 之间的像素点的数目接着是16 到31,....240 到255。我们只需要16 个值来绘制直方图即可。 那么到底要怎么做呢你只需要把原来的256 个值等分成16 小组取每组的总和。而这里的每一个小组就就成为BIN。第一个例子中有256 个BIN第二个例子中有16 个BIN。在OpenCV 的文档中用histSize 表示BINS。 DIMS 表示我们收集数据的参数数目。在本例中我们对收集到的数据只考虑一件事灰度值。所以这里就是1。 RANGE 就是要统的灰度值范围一般来说为[0-256]也就是所有的灰度值。 cv2.calcHist()函数是OpenCV中用于计算图像直方图的函数。函数原型为 cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) 参数解释 images输入图像(图像格式为uint8 或float32)。它应该是一个包含图像的列表每个图像都是一个NumPy数组。channels指定要计算直方图的通道。它是以0为基础的索引例如对于灰度图像它的值为[0]对于彩色图像可以传递[0][1]或[2]来计算蓝色、绿色或红色通道的直方图。mask眼膜图像可选参数用于指定要计算直方图的区域。如果不需要则传递None。。但是如果你想统计图像某一部分的直方图的话你就需要制作一个掩模图像并使用它。histSize指定直方图的大小。它表示直方图中有多少个BIN柱子即分成多少个区间,应该用中括号括起来例如[256]ranges指定像素值的范围。一般情况下它的值为[0, 256]表示像素值的范围为0到255。 返回值 hist计算的直方图。它是一个一维数组表示每个bin的频次。 我们从一副简单图像开始吧示例代码 import cv2 import numpy as np import matplotlib.pyplot as plt# 读取图像 image cv2.imread(image.jpg)# 将图像转换为灰度图像 gray_image cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 计算直方图别忘了参数中的中括号只有mask 没有中括号 hist cv2.calcHist([gray_image], [0], None, [256], [0, 256])# 绘制直方图 plt.plot(hist) plt.show()上述代码中首先使用cv2.imread()函数读取图像然后使用cv2.cvtColor()函数将图像转换为灰度图像。接着调用cv2.calcHist()函数计算灰度图像的直方图其中channels参数为[0]表示只计算灰度通道的直方图mask参数为None表示计算整个图像的直方图histSize参数为[256]表示直方图分成256个binranges参数为[0, 256]表示像素值的范围为0到255。最后使用matplotlib库中的plt.plot()函数绘制直方图。 使用Numpy 中的函数np.histogram() 也可以帮我们统计直方图。你也可以尝试以下代码 #img.ravel() 将图像转换成一维数组这里没有中括号。 hist,bins np.histogram(img.ravel(),256,[0,256]) hist 与上面计算的一样。但是这里的bins 是257因为Numpy 计算bins 的方式为0-0.99,1-1.99,2-2.99 等。所以最后一个范围是255-255.99。为了显示它所以在bins 的结尾加上了256。但是我们不需要256到255就够了。  绘制直方图 有两种方法来绘制直方图 1. Short Way简单方法使用Matplotlib 中的绘图函数。2. Long Way复杂方法使用OpenCV 绘图函数 Matplotlib 中有直方图绘制函数matplotlib.pyplot.hist()它可以直接统计并绘制直方图。你应该使用函数calcHist() 或np.histogram()统计直方图。代码如下 import cv2 import numpy as np from matplotlib import pyplot as pltimg cv2.imread(home.jpg,0) plt.hist(img.ravel(),256,[0,256]);plt.show()或者使用如下的方式 mport cv2 import numpy as np import matplotlib.pyplot as plt# 读取图像 image cv2.imread(image.jpg, cv2.IMREAD_GRAYSCALE)# 计算灰度直方图 hist cv2.calcHist([image], [0], None, [256], [0, 256])# 绘制直方图 plt.figure() plt.title(Grayscale Histogram) plt.xlabel(Bins) plt.ylabel(# of Pixels) plt.plot(hist) plt.xlim([0, 256]) plt.show() 你会得到如下的图 或者你可以只使用matplotlib 的绘图功能这在同时绘制多通道(BGR)的直方图很有用。但是你要先告诉绘图函数你的直方图数据在哪。 import cv2 import numpy as np from matplotlib import pyplot as plt img cv2.imread(home.jpg) color (b,g,r) # 对一个列表或数组既遍历索引又遍历历元素时 # 使用内置enumerrate 函数会有更加直接 #enumerate 会将数组或列表组成一个索引序列。 # 使我们再获取索引和索引内容的时候更加方便 for i,col in enumerate(color):histr cv2.calcHist([img],[i],None,[256],[0,256])plt.plot(histr,color col)plt.xlim([0,256]) plt.show()从上面的直方图你可以推断出蓝色曲线右侧的最多很明显那些就是天空。 使用OpenCV 自带函数绘制直方图比较麻烦可以单独研究。  使用掩模绘制直方图 要统计图像某个局部区域的直方图只需要构建一副掩模图像。将要统计的部分设置成白色其余部分为黑色就构成了一副掩模图像。然后把这个掩模图像传给函数就可以了。 img cv2.imread(home.jpg,0) # create a mask mask np.zeros(img.shape[:2], np.uint8) mask[100:300, 100:400] 255 masked_img cv2.bitwise_and(img,img,mask mask) # Calculate histogram with mask and without mask # Check third argument for mask hist_full cv2.calcHist([img],[0],None,[256],[0,256]) hist_mask cv2.calcHist([img],[0],mask,[256],[0,256]) plt.subplot(221), plt.imshow(img, gray) plt.subplot(222), plt.imshow(mask,gray) plt.subplot(223), plt.imshow(masked_img, gray) plt.subplot(224), plt.plot(hist_full), plt.plot(hist_mask) plt.xlim([0,256]) plt.show() 结果如下其中蓝线是整幅图像的直方图绿线是使用掩模之后的直方图。
http://www.zqtcl.cn/news/423018/

相关文章:

  • 阿里服务器可以做多少个网站在家怎么利用电脑赚钱
  • 免费建设一个网站google官方版下载
  • 心馨人生珠海网站建设外贸型企业网站建设
  • 好网站建设公司昆明乐清网站优化推广
  • 哪些网站用天平做logo站长工具app官方下载
  • 做餐厅logo用什么软件网站手机自适应网站源码
  • 股票网站模板辽宁工程建设信息网站
  • 毕业设计某网站开发的开题报告范文广西建设教育网站
  • 浏览小城镇建设的网站商丘网站公司
  • python学习网站做好网络推广的技巧
  • 网站有几种类型小说网站开发源码
  • 给城市建设提议献策的网站网站建设可研报告
  • 常德论坛网站陕西建设官方网站
  • 怎么做网站访问量上海网站排名提升
  • 新乡企业网站建设胶州做网站公司
  • 网站后台权限分配说明什么网站是做家教的
  • 网站备案 空间备案 域名备案网站制作与管理技术标准实训教程
  • 东莞免费企业网站模板推广有没有专门做线下活动的网站
  • 驾校网站制作郑州手机网站建设多少钱
  • c2c网站建设策划书怎么看网站关键词密度
  • 网站在线支付方案网站建设 sam大叔排名三天上首页
  • 温岭新站seo网站免费进入窗口软件有哪些
  • 网站未备案什么意思网站 php .net
  • 网站开发第三方登录设计七牛图床 wordpress
  • 大连网站设计案例宁波品牌网站设计价格
  • 响应式表白网站源码黑龙江建设网电话
  • wordpress企业建站生产企业做网站的费用怎么做账
  • 天都城网站建设wordpress pluings
  • 惠州做网站的公司有哪些wordpress主动推送
  • jsp做的网站带数据库新手网站设计定价