96SEO 2026-02-23 13:30 0
href="https://www.cnblogs.com/ljbguanli/p/19623117"

aria-level="2">计算机视觉opencv之金字塔&直方图
id="content_views">
一、金字塔
(一)高斯金字塔
高斯金字塔是一种图像多尺度表示方法,用于图像处理中的尺寸缩放和多分辨率分析。
1.高斯金字塔操作中的下采样
下采样是一种减小图像尺寸的方法,它通常涉及到降低图像的分辨率,即减少图像中像素的数量,从而使图像看起来更小
image=cv2.imread(r"D:\project\123s.jpg",0)
cv2.imshow('down1',image_down1)
image_down2=cv2.pyrDown(image_down1)
cv2.imshow('down2',image_down2)
对原图进行缩小,删除像素矩阵的偶数行和列,图片变模糊
alt=""
src="https://i-blog.csdnimg.cn/direct/68bc96d1f4294aeeadba68ecd3139837.png"
width="1011">
2.高斯金字塔操作中的上采样
上采样是一种增大图像尺寸的方法,他通过插值和滤波技术来恢复图像的分辨率和细节,通常用意图像放大或与下采样后的图像进行比较(这里我们接着下采样代码后面写)
class="language-python">image_up1=cv2.pyrUp(image)
图片会变得很大,由于太大,不好展示,上采样是插入零行或列
3.对下采样后图像进行上采样
class="language-python">'''对下采样后图像进行上采样,图像变模糊,无法复原'''
image_down1_up=cv2.pyrUp(image_down1)
image_down2_up=cv2.pyrUp(image_down2)
cv2.imshow('down1_up',image_down1_up)
cv2.imshow('down2_up',image_down2_up)
src="https://i-blog.csdnimg.cn/direct/f8a19f1152b649149ac0e6fd0a0022b3.png"
width="1039">
(二)拉普拉斯金字塔
拉普拉斯金字塔是高斯金字塔的“细节补充”版本,用于保存和恢复图像高频细节。
拉普拉斯
上采样的模糊图
这里我们在L0和L1之间加入的使用resize是让down2——up图片尺寸和down1图片尺寸保持一致,这样才可以进行相减,不进行尺寸一致,就会报错
class="language-python">'''拉普拉斯金字塔'''
image_down2_up
src="https://i-blog.csdnimg.cn/direct/6cc5074283204970a88dfdc1224b3fa8.png"
width="1871">
三、直方图
cv2.calcHist(images,channeLs,mask,histSize,ranges)
:计算图像的直方图,用于表示图像中像素灰度级别的分布情况.
- images:原图像图像格式为uint8或float32。
当传入函数时应用中括号[]括来,例如[img]
- channels:表示传入的图像通道数。
如果输入图像是灰度图它的值就是[0]。
如果是彩色图像的传入的参数可以是[0][1][2]它们分别对应着BGR。
- mask:掩模图像。
统计整幅图像的直方图就把它为None。
但是如果你想统计图像某一部分的直方图,你就制作一个掩模图像并使用它。
- histSize:BINS的数目。
也需用中括号括来(分成多少个区间)
- BINS:上面的直方图显示了每个像素值的像素数,即从0到255。
即您需要256个值才能显示上述直方图。
image=cv2.imread(r"D:\project\cat2s.jpg")
a=image.ravel()#将图像转换为一维数组,numpy的ravel函数
plt.hist(a,bins=256)#matplotlib的hist函数绘制直方图
plt.show()
image_hist=cv2.calcHist([image],[0],None,[16],[0,256])
plt.plot(image_hist)#使用calcHist的值绘制曲线图
src="https://i-blog.csdnimg.cn/direct/27fb5869ad7948d7a7239332f96e1630.png"
width="335">
src="https://i-blog.csdnimg.cn/direct/b887124f541148da856020a06ed28c2c.png"
width="333">
class="language-python">img=cv2.imread(r"D:\project\cat2s.jpg")
color=('b','g','r')
enumerate(color):histr=cv2.calcHist([img],[i],None,[256],[0,256])plt.plot(histr,color=col)
src="https://i-blog.csdnimg.cn/direct/d7db10d6161e44339f79650017fe62ad.png"
width="943">
cv2.bitwise_and():对图像(灰度图像或彩色图像均可)每个像素值进行二进制"与"操作,1&1=1,1&0=0,01=0,0&0=0
bitwise_and(src1,
src2,
mask=None)参数:
- src1、Src2:为输入图像或标量,标src1和src2相与。
- dst:可选输出变量,如果需要使用非None则要先定义,且其大小与输入变量相同
- mask:图像掩膜,可选参数,用于指定要更改的输出图像数组的元素,mask为o的值,src1和Isrc2相与的值都为0非的值,为src1和src2相与的值。
mask:直方图掩膜(mask)是一个二值图像,用于指定计算直方图的区域。
作用:只统计掩膜白**域(255)的像素,忽略黑**域(0)
class="language-python">img2=cv2.imread(r"D:\project\cat2s.jpg",cv2.IMREAD_GRAYSCALE)
cv2.waitKey(0)
mask=np.zeros(img2.shape[:2],np.uint8)
cv2.waitKey(0)
img2_mask=cv2.bitwise_and(img2,img2,mask=mask)
cv2.imshow('img_mask',img2_mask)
cv2.waitKey(0)
img2_hist_mask=cv2.calcHist([img2],[0],mask,[256],[0,256])
src="https://i-blog.csdnimg.cn/direct/425d273d348e4ab5a0ddabcd20433402.png"
alt=""
src="https://i-blog.csdnimg.cn/direct/7df4d997eb364f939c5dc50c9a997e4b.png"
width="954">
三、直方图的均衡化
真方图均衡化:真方图均衡化是一种图像增强技术,它可以通过增加图像的对比度和亮度来改善图像的质量。
直方图均衡化通过将图像的像素值分布均匀化来实现这一目标。
在Python
OpenCV中,可以使用cv2.equalizeHist()函数来实现直方图均衡化。
该函数将输入图像转换为灰度图像,并将其像素值分布均匀化,从而增强图像的对比度和亮度。
black=cv2.imread("black.jpg",cv2.IMREAD_GRAYSCALE)
plt.hist(black.ravel(),bins=256)#多维数组拉为一维
plt.show()
black_equalize=cv2.equalizeHist(black)
plt.hist(black_equalize.ravel(),bins=256)
plt.show()
res=np.hstack((black,black_equalize))#横向拼接,将多个数组按水平方向(列顺序)堆叠一个新的数组
cv2.imshow('black_equalize',res)
src="https://i-blog.csdnimg.cn/direct/e745648ba59245db81dad71616fd2f3f.png"
width="861">
自适应百方图均衡化(局部百方图处理),通过局部调整图像的直方图分布来提升图像的对比度和细节表现力,当需要保存细节特征,需要做局部处理
cv2.createCLAHE([,
clipLimit[,
参数说明:
- clipLimit:颜色对比度的阈值,可选项,默认值8
- titleGridSize:局部直方图均衡化的模板(邻域)大小,可选项,默认值(8,8)
可以调节参数的值得到处理比较好的图片
class="language-python">clahe=cv2.createCLAHE(clipLimit=30,tileGridSize=(3,3))#通过类创建了一个局部均衡化对象
res=np.hstack((black,black_equalize,black_clahe))
cv2.imshow('black_equalize',res)
src="https://i-blog.csdnimg.cn/direct/f24f0531bcb644d19677b98a048c1935.png"
width="1290">
class="post-meta-container">
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback