OpenCV高阶操作

news/2024/9/18 17:38:46/ 标签: opencv, 人工智能, 计算机视觉

在图像处理与计算机视觉领域,OpenCV(Open Source Computer Vision Library)无疑是最为强大且广泛使用的工具之一。从基础的图像读取、

1.图片的上下,采样

下采样(Downsampling)

下采样通常用于减小图像的尺寸,从而减少图像中的像素数。这个过程可以通过多种方法实现,但最常见的是通过图像金字塔中的pyrDown函数(在OpenCV中)或其他类似的滤波器(如平均池化、最大池化等)。pyrDown函数基于高斯金字塔的概念,通过平滑和子采样(即每隔一行和一列取一个像素)来减小图像尺寸。下采样通常用于特征提取、图像压缩或预处理阶段以减少计算量。

上采样(Upsampling)

上采样是下采样的逆过程,用于增加图像的尺寸,从而增加图像中的像素数。然而,简单地插入新的像素(如最近邻插值)通常会导致图像质量下降,因为新插入的像素值可能是未经处理的或基于简单规则的(如直接复制最近的像素值)。因此,更复杂的插值方法(如双线性插值、双三次插值)或上采样算法(如OpenCV中的pyrUp函数)被用来生成更平滑、更自然的图像。pyrUp函数也是基于图像金字塔的概念,但它试图通过插值和放大来重建原始图像的细节。然而,需要注意的是,由于上采样过程中引入了新的像素值,因此通常无法完全恢复到原始图像的精确像素值。

实例:

import cv2
face = cv2.imread('kele.png',cv2.IMREAD_GRAYSCALE)
cv2.imshow('face',face)
cv2.waitKey(0)
face_down_1 = cv2.pyrDown(face)
cv2.imshow('face1',face_down_1)
cv2.waitKey(0)
face_down_2 = cv2.pyrDown(face_down_1)
cv2.imshow('face2',face_down_2)
cv2.waitKey(0)
#
face_up_1 = cv2.pyrUp(face)
cv2.imshow('up1',face_up_1)
cv2.waitKey(0)
face_up_2 = cv2.pyrUp(face_up_1)
cv2.imshow('up2',face_up_2)
cv2.waitKey(0)

2.图像直方图绘制

  1. 灰度图像直方图
    • 使用 cv2.calcHist 计算灰度图像的直方图。
    • 使用 plt.plot 绘制直方图,并设置图形标题、x轴和y轴标签。
  2. 彩色图像直方图
    • 读取彩色图像。
    • 遍历蓝色、绿色和红色通道。
    • 对每个颜色通道使用 cv2.calcHist 计算直方图。
    • 使用 plt.plot 绘制每个通道的直方图,并使用 plt.setp 隐藏x轴标签以避免重叠。
    • 设置图形标题、y轴标签和图例。
phone = cv2.imread('../day07/phone.png', cv2.IMREAD_GRAYSCALE)a = phone.ravel()
# 参数解释:
# - a:一维数组,即像的像素值组成的数组。
# - bins=256:指定直方图的条数,即灰度级的数量。
plt.show()
phone_hist = cv2.calcHist([phone], [0], None, [16], [0, 256])
plt.plot(phone_hist)  # 使用calcHist的值绘制曲线图
plt.show()img = cv2.imread('../day07/phone.png')
color = ('b','g','r')
for i, col in enumerate(color):histr = cv2.calcHist([img], [i], None,[256], [0, 256])plt.plot(histr, color=col)plt.show()


http://www.ppmy.cn/news/1526134.html

相关文章

prompt实用技巧-AI+Mermaid【酷炫钉钉文档】

AI 新技能,最近 chatGPTo1 发布后模型能力出现了新的跨越,之前模型的一本正经的胡说八道幻想模式,让AI 对待理科推理明显弱于文案的 AGI 的生成。 prompt engineer 工程师程序员的福音 prompt 内容如下, 按照以上格式生成创建公…

RK3568平台(音频篇)Tinyalsa open调用流程

一.TinyALSA 简介 TinyALSA 是一个轻量级的 ALSA(Advanced Linux Sound Architecture,高级 Linux 音频架构)实现,用于与 Linux 内核中的 ALSA(高级 Linux 声音架构)进行交互,旨在为嵌入式系统和资源受限的设备提供音频支持。 ALSA是位于Linux Kernel层面的音频系统。T…

网红酒店|基于java的网红酒店预定系统(源码+数据库+文档)

酒店预定|网红酒店|网红酒店预定系统 目录 基于java的网红酒店预定系统 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&am…

C++系列-匿名对象

匿名对象 💢什么是匿名对象💢匿名对象的创建方式及作用域💢匿名对象的对象类型💢💢匿名的基本数据类型对象💢💢匿名的自定义的类类型对象💢💢匿名的标准库的类对象 &…

美股开户网:iPhone 16系列今年出货预估上调至8800~8900万部

天风国际分析师郭明錤发布iPhone 16/Pro系列生产报告,2024年iPhone 16系列出货预估从8700~8800万部上调至8800~8900万部,主要增量来自iPhone 16标准版。郭明錤预计,iPhone 16标准版、iPhone 16 Plus、iPhone 16 Pro与iPhone 16 Pro Max占2024…

基于鸿蒙API10的RTSP播放器(一:基本界面的实现)

ijkplayer简介: ijkplayer 本身是一个开源的 Android 媒体播放库,它主要用于播放视频和音频文件,现在已有前辈将其引入到鸿蒙当中,通过XComponent组件完成适配。向开源致敬! 支持格式: 它支持多种格式&…

uni-app 聊天界面滚动到消息底部

目录 问题 组件 页面 使用的API 总结 问题 当你发一个消息,但是消息却需要你自己向下滑你才能看见,否则一直呗输入框挡住。 组件 scroll-view组件:一般使用scroll-view组件的都采取使用其scroll-into-view或者scroll-to属性。 scroll-…

暴雨液冷服务器硬刚液冷放量元年

AI(人工智能)不断向前,作为AI三驾马车之一,算力需求始终如影随形。 近日,财经记者走访了河南郑州多家服务器厂商、大模型公司和算力中心。在走访中,记者发现,液冷技术正被算力行业青睐&#xf…

快速搭建最简单的前端项目vue+View UI Plus

1 引言 ‌‌Vue是一套用于构建Web前端界面的渐进式JavaScript框架。‌‌它以其易学易用、性能出色、灵活多变而深受开发者喜爱,并且与其他前端框架(如‌React和‌Angular)相比,在国内市场上受到了广泛的认可和使用。点击进入官方…

SpringCloud-05 Resilience4J 服务降级和熔断

服务雪崩:指在多个服务之间存在依赖关系时,当一个服务发生故障或不可用时,导致其他服务也无法正常工作的情况。这种现象通常是因为服务之间的依赖关系过于紧密,当一个服务发生故障时,其他服务无法正确处理该服务的请求…

串口接收不到数据之电阻虚焊bug分析思路

单片机和EC移远通信模块进行通信,相同的代码运行在相同的硬件上,但是一个能联网,一个因为没有EC的应答连不上网。 开始分析,排除软件问题,给EC模块发为什么没应答? 1.发送失败 2.接收失败 排除情况2&#x…

IP纯净度对跨境电商有哪些影响

在当今全球化的经济背景下,跨境电商已成为连接不同国家和地区的重要桥梁,它不仅推动了国际贸易的便利化,还促进了全球资源的优化配置。 然而,跨境电商的运营并非一帆风顺,其中IP纯净度作为一个关键因素,对…

Go入门语法

1.转义符 1) \t :一个制表位,实现对齐功能 2)\n :换行符 3)\ :一个 4)" :一个" 5)\r :一个回车不换行(r后覆盖当前行最前面…

基于SpringBoot+Vue+MySQL的校园健康驿站管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 本文设计并实现了一个基于SpringBoot后端、Vue前端与MySQL数据库的校园健康驿站管理系统。该系统旨在通过数字化手段,全面管理学生的健康信息,包括体温监测、疫苗接种记录、健康状况申报等,为…

热点数据更新优化

热点数据更新优化 热点数据更新带来的问题问题的方向判断用户线程被打挂据库cpu被打挂(优先考虑,80%可能性)redis被打挂 临时解决方案解决方案流量控制热点隔离数据分批次提交数据合并后更新重写MySQL的执行层 热点数据更新带来的问题 问题的…

门磁模块详解(防盗感应开关 STM32)

目录 一、介绍 二、程序设计 main.c文件 gate_guard.h文件 gate_guard.c文件 三、实验效果 四、资料获取 项目分享 一、介绍 MC-38常闭式门磁开关是作为IO开关输入数字信号的,原理是合在一起信号是导通的 , 配合有线主机使用 不能单独使用。适用于非铁质&a…

基于Python实现一个庆祝国庆节的小程序

功能: 添加互动功能:允许用户选择不同的祝福语或者查询不同的国庆节信息。动态背景音乐:播放国庆节相关的背景音乐。增加节日小测验:提供一些关于国庆节的趣味小测验,让用户参与。增强图形用户界面 (GUI):…

中断门+陷阱门

中断门: 中断描述符在IDT表里面 kd> dq idtr 80b95400 83e48e000008bfc0 83e48e000008c150 80b95410 0000850000580000 83e4ee000008c5c0 80b95420 83e4ee000008c748 83e48e000008c8a8 80b95430 83e48e000008ca1c 83e48e000008d018 80b95440 000085000050…

git github仓库管理

原文链接:git github仓库管理 拉取镜像 github的仓库有两种下载方式,http和ssh,http是对外公开的,可以直接clone,ssh的一般是自己的或内部的仓库,仓库需要配置ssh-key才能使用git clone. 或者直接网页下载 #https git clone https://github.com/git/git.git #ssh…

vue element时间选择不能超过今天 时间选中长度不能超过7天

背景: 使用elenmet plus 组件实现时间选择;且日期时间选择不能超过今天;连续选中时间的长度范围不能超过7天 效果展示: 实现思路: 一、使用element组件自带的属性和方法; :disabled-date"disabledDate…