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

17.图像金字塔采样(放大,缩小处理)拉普拉斯金字塔

拉普拉斯金子塔只需要了解即可,类似与画出轮廓

import cv2
from matplotlib import pyplot as plt#导入 Matplotlib 库中的 pyplot 模块,并命名为 plt。#Matplotlib 是一个强大的绘图库,常用于绘制图表和图像显示。#就是窗口# OpenCV	BGR(Blue, Green, Red)# Matplotlib	RGB(Red, Green, Blue)
import numpy as np  #导入 NumPy 库,并命名为 np。#NumPy 提供了多维数组对象及各种派生对象(如掩模数组),并且包含大量用于数组快速操作的函数。# 如果图像不在脚本所在目录,请提供完整路径
img1_t =  cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/IMG_20231230_171718.jpg")#使用 OpenCV 函数读取图像文件。
img2_t= cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/202310281019103.jpg")                                        #它返回的是一个 NumPy 数组,其中包含了图像的像素数据。如果没有找到图像或路径错误,img 将是 None。
img3_t= cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/maoci1.jpg")                                        #它返回的是一个 NumPy 数组,其中包含了图像的像素数据。如果没有找到图像或路径错误,img 将是 None。
moban= cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/moban.jpg") 
jinzitan= cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/jingzhitan.jpg")       
# 检查图片是否成功加载
if img1_t is None:print("Error: 图像1加载失败,请检查文件路径和文件权限。")
elif img2_t is None:        print("Error: 图像2加载失败,请检查文件路径和文件权限。")
elif img3_t is None:        print("Error: 图像3加载失败,请检查文件路径和文件权限。")
elif moban is None:        print("Error: 图像模板加载失败,请检查文件路径和文件权限。")
elif jinzitan is None:        print("Error: 图像模板加载失败,请检查文件路径和文件权限。")
else:# 将 BGR 图像转换为 RGB 图像以供 matplotlib 正确显示print(" 图像加载成功!")img1_rgb = cv2.cvtColor(img1_t, cv2.COLOR_BGR2RGB)#由于 OpenCV 默认使用 BGR 格式来存储图像数据,而大多数其他图像处理工具(包括 Matplotlib)使用 RGB 格式。                                    #因此,在用 Matplotlib 显示图像之前,我们需要将图像从 BGR 格式转换为 RGB 格式。img3_rgb = cv2.cvtColor(img3_t, cv2.COLOR_BGR2RGB)img2_rgb = cv2.cvtColor(img2_t, cv2.COLOR_BGR2RGB)                                                 #RGB 和 BGR 只是颜色通道的不同排序moban_rgb= cv2.cvtColor(moban, cv2.COLOR_BGR2RGB) jinzitan_rgb= cv2.cvtColor(jinzitan, cv2.COLOR_BGR2RGB)
#添加函数 图片展示函数
def CV_Show(name,img,time,percent): scale_percent = percent  # 百分比width = int(img.shape[1] * scale_percent / 100)     #shape[1]:图片的宽度height = int(img.shape[0] * scale_percent / 100)    #shape[0]:图片的高度dim = (width, height)#格式为 (width, height)resized_img = cv2.resize(img, dim,interpolation=cv2.INTER_AREA)cv2.imshow(name, resized_img)cv2.waitKey(time*1000)#显示多少秒  cv2.destroyAllWindows()#***************预处理************
img2_gray=cv2.cvtColor(img2_rgb,cv2.COLOR_BGR2GRAY)#转化为灰白图 
moban_gray=cv2.cvtColor(moban_rgb,cv2.COLOR_BGR2GRAY)#转化为灰白图   
img2_gray_ret,img2_gray_dst=cv2.threshold(img2_gray,150,255,cv2.THRESH_BINARY)#返回参数分别为  返回阈值,返回图片
#CV_Show("img2_img2_gray_dstgray",img2_gray_dst,3,50)
#********************************
#CV_Show("jinzitan",jinzitan,3,80)up=cv2.pyrUp(jinzitan)#放大,变模糊
down=cv2.pyrDown(jinzitan)#缩小
print("原图:{}".format(jinzitan.shape))
print("放大图:{}".format(up.shape))
print("缩小图:{}".format(down.shape))# cv2.imshow("up", up)
# cv2.imshow("down", down)
# cv2.waitKey(3*1000)#显示多少秒  
# cv2.destroyAllWindows()#先放大,后缩小
# up_down=cv2.pyrUp(jinzitan)#放大,变模糊
# up_down=cv2.pyrDown(up_down)#放大,变模糊
# CV_Show("up_down,jinzitan",np.hstack((up_down,jinzitan)),3,80)#将图片放一起来对比# #先缩小,在放大
# down_up=cv2.pyrUp(jinzitan)#放大,变模糊
# down_up=cv2.pyrDown(down_up)#放大,变模糊
# CV_Show("down_up,jinzitan",np.hstack((down_up,jinzitan)),3,80)#将图片放一起来对比#拉普拉斯金字塔(就是放大在缩小,之后再原图-处理图)up_down=cv2.pyrUp(jinzitan)#放大,变模糊
up_down=cv2.pyrDown(up_down)#放大,变模糊
lapuls=jinzitan-up_down
CV_Show("lapuls,jinzitan",np.hstack((lapuls,jinzitan)),3,80)#将图片放一起来对比

http://www.dtcms.com/a/283013.html

相关文章:

  • 闰年的历史由来与C语言实现详解
  • 7.16 拓扑排序 | 欧拉回路 |链表排序 前缀和
  • Vue在线预览Excel和Docx格式文件
  • Redis学习其一
  • Python学习之路(十三)-常用函数的使用,及优化
  • Redis读写策略深度解析:高并发场景下的缓存兵法
  • python基础语法9,用os库实现系统操作并用sys库实现文件操作(简单易上手的python语法教学)
  • 猫眼娱乐IOS开发一面手撕算法
  • 嵌入式学习笔记--MCU阶段--DAY06DHT11练习
  • AR智能巡检:电力行业数字化转型的“加速器”
  • 基于Llama的RAG 3种模型配置方法
  • 51c自动驾驶~合集7
  • 基于C#开发solidworks图库中文件(SLDPRT,SLDASM,SLDDRW等)转换为HTML和PDF,提供批量和实时转换
  • AI产品经理面试宝典第28天:自动驾驶与智慧交通融合面试题与答法
  • 自动驾驶激光3D点云处理系统性阐述及Open3D库函数应用
  • MR 处于 WIP 状态的WIP是什么
  • 小模型的价值重估:从“缩水版DeepSeek”到AI系统的基础执行单元20250716
  • Linux 挂载新磁盘导致原文件被隐藏解决方案
  • 【代码】Matlab鸟瞰图函数
  • sqli-labs靶场通关笔记:第23关 注释符过滤
  • 叉车机器人如何实现托盘精准定位?这项核心技术的原理和应用是什么?
  • 静默的田野守护者:Deepoc具身智能如何让除草机器人读懂大地密语
  • Mybatis08-使用pageHelper
  • 本地 AI 问答机器人搭建项目(Ollama + Qwen-7B + LangChain + FastAPI)
  • AI对话聊天与桌宠工具调研报告
  • 【案例分享】基于FastCAE-Acoustics软件对车门进行噪声预测
  • 移动平板电脑安全管控方案
  • 祥云系统开源云商城程序全开源版 个人程序云商城(源码下载)
  • 前端学习7:CSS过渡与动画--补间动画 (Transition) vs 关键帧动画 (Animation)
  • xss-lab1-8关