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

深圳高端网站深圳软件开发

深圳高端网站,深圳软件开发,沈阳做招聘网站,怎么做充值网站这是对于 OpenCV 官方文档中 图像处理 的学习笔记。学习笔记中会记录官方给出的例子#xff0c;也会给出自己根据官方的例子完成的更改代码#xff0c;同样彩蛋的实现也会结合多个知识点一起实现一些小功能#xff0c;来帮助我们对学会的知识点进行结合应用。 如果有喜欢我笔… 这是对于 OpenCV 官方文档中 图像处理 的学习笔记。学习笔记中会记录官方给出的例子也会给出自己根据官方的例子完成的更改代码同样彩蛋的实现也会结合多个知识点一起实现一些小功能来帮助我们对学会的知识点进行结合应用。 如果有喜欢我笔记的请麻烦帮我关注、点赞、评论。谢谢诸位。 学习笔记 学习笔记目录里面会收录我关于OpenCV系列学习笔记博文大家如果有什么不懂的可以通过阅读我的学习笔记进行学习。 【OpenCV学习笔记】- 学习笔记目录 内容 使用OpenCV和Numpy函数查找直方图使用OpenCV和Matplotlib函数绘制直方图您将看到以下功能cv.calcHist() np.histogram() 等。 理论 那么直方图是什么您可以将直方图视为图形或曲线图从而使您对图像的强度分布有一个整体的了解。它是在X轴上具有像素值(不总是从0到255的范围)在Y轴上具有图像中相应像素数的图。 这只是理解图像的另一种方式。通过查看图像的直方图您可以直观地了解该图像的对比度亮度强度分布等。当今几乎所有图像处理工具都提供直方图功能。以下是 剑桥彩色网站 上的图片建议您访问该网站以获取更多详细信息。 您可以看到图像及其直方图。(请记住此直方图是针对灰度图像而非彩色图像绘制的)。直方图的左侧区域显示图像中较暗像素的数量而右侧区域则显示较亮像素的数量。从直方图中您可以看到暗区域多于亮区域中间值的数量(中间值的像素值例如127附近)非常少。 查找直方图 现在我们有了一个关于直方图的想法我们可以研究如何找到它。OpenCV和Numpy都为此内置了功能。在使用这些功能之前我们需要了解一些与直方图有关的术语。 BINS 上面的直方图显示每个像素值的像素数即从0到255。即您需要256个值来显示上面的直方图。但是考虑一下如果您不需要分别找到所有像素值的像素数而是找到像素值间隔中的像素数怎么办例如您需要找到介于0到15之间然后16到31之间…240到255之间的像素数。您只需要16个值即可表示直方图。这就是在 OpenCV直方图教程 中给出的示例中所显示的内容。 因此您要做的就是将整个直方图分成16个子部分每个子部分的值就是其中所有像素数的总和。每个子部分都称为“BIN”。在第一种情况下bin的数量为256个(每个像素一个)而在第二种情况下bin的数量仅为16个。BINS由OpenCV文档中的 histSize 术语表示。 DIMS 这是我们为其收集数据的参数的数量。在这种情况下我们仅收集关于强度值的一件事的数据。所以这里是1。 范围 这是您要测量的强度值的范围。通常它是[0,256]即所有强度值。 1. OPENCV中的直方图计算 因此现在我们使用 cv.calcHist() 函数查找直方图。让我们熟悉一下函数及其参数 images 它是uint8或float32类型的源图像。它应该放在方括号中即“ [img]”。channels 也以方括号给出。它是我们计算直方图的通道的索引。例如如果输入为灰度图像则其值为[0]。对于彩色图像您可以传递[0][1]或[2]分别计算蓝色绿色或红色通道的直方图。mask 遮罩图像。为了找到完整图像的直方图将其指定为“无”。但是如果要查找图像特定区域的直方图则必须为此创建一个遮罩图像并将其作为遮罩。(我将在后面显示一个示例。)histSize 这表示我们的BIN计数。需要放在方括号中。对于全尺寸我们通过[256]。ranges 这是我们的RANGE。通常为[0,256]。 因此让我们从示例图像开始。只需在灰度模式下加载图像并找到其完整的直方图即可。 示例代码 # OpenCV 中的直方图 # 直方图 - 1查找绘图分析! # 理论 # 查找直方图 # 1. OPENCV中的直方图计算 import cv2 as cvimg cv.imread(../image/3.7.1.png, 0) hist cv.calcHist([img], [0], None, [256], [0, 256]) # print(hist) print(len(hist)) print(len(hist[0]))命令行/控制台 256 1hist是256x1的数组每个值对应于该图像中具有相应像素值的像素数。 2. NUMPY中的直方图计算 Numpy还为您提供了一个函数 np.histogram() 。因此您可以在下面的行尝试代替 **calcHist() **函数 示例代码 # OpenCV 中的直方图 # 直方图 - 1查找绘图分析! # 理论 # 查找直方图 # 2. NUMPY中的直方图计算 import cv2 as cv import numpy as npimg cv.imread(../image/3.7.1.png, 0) hist, bins np.histogram(img.ravel(), 256, [0, 256]) # print(hist) print(len(hist))命令行/控制台 256hist与我们之前计算的相同。但是bin将具有257个元素因为Numpy计算出bin的范围为0-0.99、1-1.99、2-2.99等。因此最终范围为255-255.99。为了表示这一点他们还在料箱末端添加了256。但是我们不需要256。最多255就足够了。 也可以看看 Numpy还有另一个函数 np.bincount() 它比np.histogram()快10倍左右。因此对于一维直方图您可以更好地尝试一下。不要忘记在np.bincount中设置minlength 256。例如hist np.bincount(img.ravel()minlength 256) 示例代码 # OpenCV 中的直方图 # 直方图 - 1查找绘图分析! # 理论 # 查找直方图 # 2. NUMPY中的直方图计算 import cv2 as cv import numpy as npimg cv.imread(../image/3.7.1.png, 0) hist, bins np.histogram(img.ravel(), 256, [0, 256]) # print(hist) print(len(hist))hist np.bincount(img.ravel(), minlength256) # print(hist) print(len(hist))命令行/控制台 256 256对比两个函数返回的结果是一致的。 注意 OpenCV函数比 np.histogram() 快(大约40倍)。因此请坚持使用OpenCV功能。 现在我们应该绘制直方图但是如何 绘制直方图 有两种方法 简短方法使用Matplotlib绘图功能漫长方法使用OpenCV绘图功能 1.使用MATPLOTLIB Matplotlib带有直方图绘图功能matplotlib.pyplot.hist() 它直接找到直方图并将其绘制。您无需使用 calcHist() 或 np.histogram() 函数来查找直方图。请参考下面的代码 示例代码 # OpenCV 中的直方图 # 直方图 - 1查找绘图分析! # 理论 # 绘制直方图 # 1.使用MATPLOTLIB - 1 import cv2 as cv from matplotlib import pyplot as pltimg cv.imread(../image/3.7.1.png, 0) plt.subplot(121), plt.imshow(img, cmapgray) plt.show() plt.hist(img.ravel(), 256, [0, 256]) plt.show()效果图 或者您可以使用matplotlib的法线图这对于BGR图是很好的。为此您需要首先找到直方图数据。试试下面的代码 示例代码 # OpenCV 中的直方图 # 直方图 - 1查找绘图分析! # 理论 # 绘制直方图 # 1.使用MATPLOTLIB - 2 import cv2 as cv from matplotlib import pyplot as pltimg cv.imread(../image/3.7.1.png) color (b, g, r) for i, col in enumerate(color):histr cv.calcHist([img], [i], None, [256], [0, 256])plt.plot(histr, colorcol)plt.xlim([0, 256]) plt.show()效果图 您可以从上图中得出红色、蓝色、绿色在图像中具有一些高值区域(显然这应该是由于阳光、牛、草坪) 2.使用OPENCV 好吧在这里您可以调整直方图的值及其bin值使其看起来像xy坐标以便可以使用 cv.line() 或 cv.polyline() 函数绘制它以生成与上述相同的图像。OpenCV-Python2官方示例已经提供了此功能。检查 samples/python/hist.py 代码。 遮罩的应用 我们使用 cv.calcHist() 查找完整图像的直方图。如果要查找图像某些区域的直方图怎么办只需在要查找直方图的区域上创建白色的蒙版图像否则创建黑色。然后通过这个作为遮罩。 示例代码 # OpenCV 中的直方图 # 直方图 - 1查找绘图分析! # 理论 # 遮罩的应用 import cv2 as cv import numpy as np from matplotlib import pyplot as pltimg cv.imread(../image/3.7.1.png, 0) # create a mask mask np.zeros(img.shape[:2], np.uint8) mask[300:480, 300:740] 255 masked_img cv.bitwise_and(img, img, maskmask) # Calculate histogram with mask and without mask # Check third argument for mask hist_full cv.calcHist([img], [0], None, [256], [0, 256]) hist_mask cv.calcHist([img], [0], mask, [256], [0, 256]) plt.subplot(221), plt.imshow(img, gray), plt.title(Original Image) plt.subplot(222), plt.imshow(mask, gray), plt.title(Mask) plt.subplot(223), plt.imshow(masked_img, gray), plt.title(Masked Image) plt.subplot(224), plt.plot(hist_full), plt.plot(hist_mask), plt.title(Histogram) plt.xlim([0, 256]) plt.show()效果图 可以很明显看出遮罩范围图像色颜色分布绿色占比降低。
http://www.pierceye.com/news/224312/

相关文章:

  • 帝国网站管理系统安装教程互联网怎么做网站
  • 模板手机网站建设公司河南最新新闻事件今天
  • 企业网站备案要钱吗商标设计费用一般是多少
  • 天津专业网站制作新乡商城网站建设价格
  • 建筑业务网站建设泉州公司做网站
  • 做网站遇到的问题及解决方法网站快速查找
  • excel做网页放进网站2024年报申报入口官网
  • 伊春住房和城乡建设局网站滨州网站建设制作
  • 芒市网站建设wordpress登入修改
  • 室内设计招标网站mvc网站入口asp
  • 淘宝客怎么建设自己网站wordpress主题模板仿
  • 淄博做网站电话网站建设大赛策划书
  • 网站建设模板网站网站分析的优劣势
  • 医疗网站备案要怎么做 需要准备什么材料高端html5网站建设织梦模板
  • 网站建设支付方式站长之家seo综合
  • 桂林网丫网业管理有限公司外贸网站建设和优化
  • 安徽合肥中国建设银行网站首页如何寻找做网站的客户
  • 网站是怎么做网站建设风险是什么
  • 商丘电子商务网站建设徽文化网站建设方案书
  • 什么网站做视频给钱网上做广告宣传
  • 建网站域名注册后需要做seo是什么意思
  • 做系统正版win10系统下载网站安定网站建设
  • 代码怎么做网站网站建设合同 简单
  • 耐克官网网站设计做一个企业网站需要多少钱
  • 动易手机网站自己开发小程序要多少钱
  • 英迈思做的网站怎么样网站做m版
  • 通州设计网站建设城市宣传片制作公司
  • 南安网站设计网站创意
  • 建设部网站造价注册seo优化易下拉霸屏
  • 西安网站外包上海网站被查