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

网站后台编辑不了西安百度竞价托管代运营

网站后台编辑不了,西安百度竞价托管代运营,网站建设方面的课程,怎样做网络推广外包本文主要介绍一些opencv关于直方图的一些知识运用#xff0c;直方图是非常常用的图像处理方法#xff0c;有时候在很多图像预处理中能起到特别好的效果#xff0c;大家可以一起来学习探讨~目录直方图计算直方图直方图均衡化CLAHE 自适应均衡化2D直方图直方图反射投影直方图✏…本文主要介绍一些opencv关于直方图的一些知识运用直方图是非常常用的图像处理方法有时候在很多图像预处理中能起到特别好的效果大家可以一起来学习探讨~目录直方图计算直方图直方图均衡化CLAHE 自适应均衡化2D直方图直方图反射投影直方图✏️ 问什么是直方图️ 答直方图是可以对整幅图的灰度分布进行整体了解的图示通过直方图我们可以对图像的对比度、亮度和灰度分布等有一个直观了解。计算直方图使用opencv的函数cv2.calcHist(images, channels, mask, histSize, ranges):参数1要计算的原图以方括号的传入如[img]。参数2类似前面提到的dims灰度图写[0]就行彩色图B/G/R分别传入[0]/[1]/[2]。参数3要计算的区域ROI计算整幅图的话写None。参数4也叫bins,子区段数目如果我们统计0-255每个像素值bins256如果划分区间比如0-15, 16-31…240-255这样16个区间bins16。参数5range,要计算的像素值范围一般为[0,256)。hist cv2.calcHist([img], [0], None, [256], [0, 256]) # 性能0.025288 s使用numpy的函数 np.bincount():用Numpy的函数计算其中ravel()函数将二维矩阵展平变成一维数组.hist np.bincount(img.ravel(), minlength256) # 性能0.003163 s绘制直方图使用Matplotlib自带的绘制工具plt.hist()绘制。plt.hist(img.ravel(), 256, [0, 256])✔️ 当然也可以用前面计算出来的结果绘制plt.plot(hist)✔️ 当然也可以绘制出r,g,b不同通道的直方图import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltimg cv.imread(../data/home.jpg)color (b,g,r)for i,col in enumerate(color): histr cv.calcHist([img],[i],None,[256],[0,256]) plt.plot(histr,color col) plt.xlim([0,256])plt.show()r,g,b通道的直方图✔️ 当然也可以绘制出ROI的直方图import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltimg cv.imread(../data/home.jpg,0)mask np.zeros(img.shape[:2], np.uint8)mask[100:300, 100:400] 255mask_img cv.bitwise_and(img, img , mask mask)hist_full cv.calcHist([img],[0],None,[256],[0,256])hist_mask cv.calcHist([img],[0],mask,[256],[0,256])cv.imshow(fd, mask_img)cv.waitKey(0)plt.subplot(221), plt.imshow(img, gray)plt.subplot(222), plt.imshow(mask,gray)plt.subplot(223), plt.imshow(mask_img, gray)plt.subplot(224), plt.plot(hist_full), plt.plot(hist_mask)plt.xlim([0,256])plt.show()ROI的直方图直方图均衡化⛳️ 一副效果好的图像通常在直方图上的分布比较均匀直方图均衡化就是用来改善图像的全局亮度和对比度。直方图均衡化OpenCV中用cv2.equalizeHist() 实现均衡化:1️⃣ 灰度图均衡直接使用cv2.equalizeHist(gray)2️⃣ 彩色图均衡分别在不同的通道均衡后合并import cv2import numpy as npimg cv2.imread(girl.jpg, 1)gray cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 灰度图均衡化equ cv2.equalizeHist(gray)# 水平拼接原图和均衡图result1 np.hstack((gray, equ))# 彩色图像均衡化,需要分解通道 对每一个通道均衡化(b, g, r) cv2.split(img)bH cv2.equalizeHist(b)gH cv2.equalizeHist(g)rH cv2.equalizeHist(r)# 合并每一个通道equ2 cv2.merge((bH, gH, rH))# 水平拼接原图和均衡图result2 np.hstack((img,equ2))灰度均衡化彩色均衡化CLAHE 自适应均衡化直方图均衡化是应用于整幅图片的会导致一些图片部位太亮导致大部分细节丢失因此引入自适应均衡来解决这个问题。它在每一个小区域内(默认8×8)进行直方图均衡化。当然如果有噪点的话噪点会被放大需要对小区域内的对比度进行了限制。彩色图同样需要split为r,g,b后均衡然后merge。# 自适应均衡化参数可选clahe cv2.createCLAHE(clipLimit2.0, tileGridSize(8, 8))cl1 clahe.apply(img)2D直方图⛳️ 2D直方图通常需要考虑每个颜色(Hue)和饱和度(Saturation)。✔️ 同样适用cv2.calcHist()函数计算直方图✔️ 参数修改channels[0,1] 因为我们需要同时处理 H 和 S 两个通道。bins[180,256] H通道为180S通道为256。range[0,180,0,256] H 的取值范围在0到180, S的取值范围在0到256。import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltimg cv.imread(home.jpg)hsv cv.cvtColor(img,cv.COLOR_BGR2HSV)hist cv.calcHist( [hsv], [0, 1], None, [180, 256], [0, 180, 0, 256] )plt.imshow(hist,interpolation nearest)plt.show()2D直方图直方图反射投影反向投影可以用来做图像分割寻找感兴趣区间。它会输出与输入图像大小相同的图像每一个像素值代表了输入图像上对应点属于目标对象的概率简言之输出图像中像素值越高的点越可能代表想要查找的目标。直方图投影经常与camshift(追踪算法)算法一起使用。过程首先要为包含我们感兴趣区域的图像建立直方图。被查找的对象最好是占据整个图像(图像里全是对象)最好使用颜色直方图物体的颜色信息比灰度图像更容易被分割和识别。再将颜色直方图投影到输入图像查找目标也就是找到输入图像中每一个像素点的像素值在直方图中对应的概率这样就得到一个概率图像最后设置适当的阈值对概率图像进行二值化。⛳️ Opencv函数 cv2.calcBackProject()直接实现反向投影参数与cv2.calcHist() 基本一致。其中一个参数是要查找的目标的直方图。在使用目标直方图反向投影前应该进行归一化处理。返回结果是一个概率图像然后进行圆盘形状卷积操作再二值化。import cv2import numpy as np# 想要寻找的roi图片roi cv2.imread(roi.png)hsv cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)# 目标搜索图片target cv2.imread(football.png)hsvt cv2.cvtColor(target, cv2.COLOR_BGR2HSV)# 计算roi直方图roihist cv2.calcHist([hsvt], [0, 1], None, [180, 256], [0, 180, 0, 256])# 归一化参数为原图像和输出图像归一化后值全部在0到255范围# cv2.NORM_MINMAX 对数组的所有值进行转化,使它们线性映射到最小值和最大值之 间cv2.normalize(roihist, roihist, 0, 255, cv2.NORM_MINMAX)dst cv2.calcBackProject([hsvt], [0,1],roihist, [0, 180, 0, 256], 1)# 此处卷积可以把分散的点连在一起disc cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))dst cv2.filter2D(dst, -1, disc)ret, thresh cv2.threshold(dst, 50, 255, 0)#使用merge变成通道图像thresh cv2.merge((thresh,thresh,thresh))# 按位操作res cv2.bitwise_and(target, thresh)res np.hstack((target, thresh, res))cv2.imwrite(res.jpg, res)# 显示图像cv2.imshow(1, res)cv2.waitKey(0)cv2.destroyAllWindows()roi图片目标图查询结果未完待续~------------------------------------可爱の分割线------------------------------------更多Opencv教程将后续发布欢迎关注哟~❤️❤️❤️
http://www.zqtcl.cn/news/175951/

相关文章:

  • 广州网站设计与制作公司windows优化大师官方下载
  • 找公司做网站要注意什么网站优化方法页面
  • 贵州省都匀市网站建设it培训机构培训排名
  • 网站开发的技术栈网页设计1920尺寸
  • 在中国可以做国外的域名网站吗中国建设银行人力资源网站
  • 中石化第四建设公司 网站电商app开发价格表
  • dhru商城网站建设免费英文网站建设
  • 公司建设网站的 计划书深圳华强北电子商城
  • 宁波网站建设有限公司大圣网站建设
  • wish网站应该怎么做网站的html代码在哪
  • 哪个网站可以做体育主播站长工具seo综合查询怎么去掉
  • 哪个网站做logo设计师公司做网站需要什么资料
  • 想自己做衣服上哪个网站学网站设计网上培训学校
  • 做餐饮的网站云匠网可能会遇到哪些问题
  • 制作网页网站的软件是网络科技公司怎么注册
  • 如何做百度推广网站价格网如何查产品价格
  • 织梦移动网站后缀找生意项目
  • 深圳高端网站建设美工步骤图
  • 指数网站网站用ps下拉效果怎么做
  • 李沧网站建设电话从化企业网站建设
  • 北京电商网站建设公司新康家园网站建设
  • 广西注册公司网站企业高端网站制作
  • 国安中建建设集团网站南京网页设计培训班
  • 网站如何制作建设内容社交电商平台
  • 无法连接到wordpress站点网站建设两个方面
  • 广东官网网站建设品牌未来做啥网站能致富
  • 网站建设合同副本珠海微网站建设
  • wordpress 多语言 站点数据分析师报名入口
  • 做网站长尾词品牌设计模板
  • 企业建立网站的优势阿里云做网站号码