深度学习-OpenCV运用(2)

news2024/11/15 11:13:59

文章目录

  • 一、OpenCV介绍
  • 二、OpenCV运用
    • 1.提取与合并通道
    • 2.图片打码
    • 3.图片组合与缩放
    • 4.图像运算
  • 三、总结

一、OpenCV介绍

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它主要用于实时的图像处理和计算机视觉任务。虽然OpenCV本身更多地聚焦于图像处理和视觉任务,但它也提供了与机器学习相关的功能,使得开发者能够利用它来执行一些基本的机器学习任务。

二、OpenCV运用

OpenCV广泛应用于图像处理、视频分析、目标检测、机器学习等多个领域。这里我们解析为大家介绍图像处理等相关运用。

1.提取与合并通道

这段代码通过提取颜色通道,并对其进行分离,然后进行显示与合并的各种操作。

import cv2
a = cv2.imread(r'./2.png')
# 提取颜色通道
a1 = a[:, :, 0]  # B
a2 = a[:, :, 1]  # G
a3 = a[:, :, 2]  # R
# 或者使用cv2.split()分离
b, g, r = cv2.split(a)

# 显示蓝色通道图像
cv2.imshow('result', b)
cv2.waitKey(10000)
cv2.destroyAllWindows()

# 合并通道
img = cv2.merge((b, g, r))
cv2.imshow('result', img)
cv2.waitKey(10000)
cv2.destroyAllWindows()
  • 访问通道:首先使用索引直接访问了图像的蓝色、绿色和红色通道,并分别将它们存储在a1、a2和a3中。
  • 通道分离:使用cv2.split()函数将图像a的三个颜色通道分离,并分别存储在b、g和r中。
  • 显示通道:使用cv2.imshow()函数显示了蓝色通道的图像,并等待10秒钟,以便用户有足够的时间查看图像,之后创关闭建的窗口。
  • 合并通道:使用cv2.merge()函数将b、g、r(这些已经是分离后又正确对应的颜色通道)合并回了一个三通道图像img,然后显示了这个图像。由于b、g、r是通过cv2.split()从原始图像a中正确分离出来的,因此合并后的图像img将与原始图像a完全相同。

2.图片打码

这段代码尝试将一个随机生成的 100x100x3 数组(即一个包含随机颜色值的 100x100 像素的图像块)赋值给原始图像 a 的一个特定区域,进行图片打码。

import cv2
import numpy as np
a = cv2.imread(r'./2.png')
a[100:200,200:300] = np.random.randint(0,256,(100,100,3))#矩阵赋值必须是相同大小
cv2.imshow('dama',a)
cv2.waitKey(10000)
cv2.destroyAllWindows()

  • 矩阵赋值:随机赋值并在图片a中对应位置显示,0~256指赋值位置颜色范围,100*100是像素大小,3 代表红色(R)、绿色(G)和蓝色(B)通道。
    在这里插入图片描述

3.图片组合与缩放

这段代码完成了图片的组合与缩放。

import cv2
a =cv2.imread('2.png')
b = cv2.imread('30.png')
#图片组合
b[200:300,200:300] = a[150:250,150:250]
cv2.imshow('zuhe',b)
cv2.waitKey(10000)
cv2.destroyAllWindows()
# 图片缩放
a_new = cv2.resize(a,(1000,500))
# a_new = cv2.resize(a,dsize=None,fx=1.5,fy=1.5)
cv2.imshow('a_new',a_new)
cv2.waitKey(10000)
  • 读取图像:读取两个图像文件,并将它们分别存储在变量 a 和 b 中。
  • 图像组合:通过数组切片的方式,从图像 a 中提取一个区域,将这个区域复制到图像 b 的指定位置,实现图像的组合。
  • 缩放图像:将图像 a 的大小调整为1000x500像素。这个操作不会改变原始图像 a,而是创建一个新的图像 a_new 来存储缩放后的结果。(或者通过注释的方法来改变图像大小与原图的倍数)

4.图像运算

# 当像素大于255时,自动模256回绕
a = cv2.imread('2.png')
b = cv2.imread('30.png')
c = a+10
cv2.imshow('yuantu',a)
cv2.imshow('tupian', c)
cv2.waitKey(10000)

c = a[50:450, 50:400] + b[50:450, 50:400]
cv2.imshow('a+b', c)
cv2.waitKey(10000)
cv2.destroyAllWindows()
# 当像素大于255时,该值为255
a = cv2.imread('2.png')
b = cv2.imread('30.png')
b = cv2.resize(b, (400, 400))
a = cv2.resize(a, (400, 400))
c = cv2.add(a, b)
cv2.imshow('a+b', c)
cv2.waitKey(10000)
cv2.destroyAllWindows()
  • 不解决溢出:将图像a的每个像素值加10,同时将图像a和b的特定区域相加,但未处理溢出。超过255,在OpenCV中,它们会自动回绕到0-255的范围内。
  • 解决溢出:使用cv2.add()函数来相加两个图像。这个函数会处理溢出,确保结果图像的像素值不会超过255(即,任何超过255的像素值都会被截断为255)。

三、总结

OpenCV是一个功能强大的计算机视觉库,可以轻松对图片进行处理。深度学习和OpenCV的结合可以充分利用两者的优势,提高图像处理的效率和效果。这种结合使得图像处理系统更加灵活和强大,能够应对各种复杂的视觉任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ShareSDK 企业微信

本篇文档主要讲解如何使用企业微信并进行分享和授权。 创建应用 登录企业微信并通过企业认证。选择应用管理 > 应用 >创建应用。编辑应用信息。配置授权登录信息。 以下为创建过程示例,图中信息仅为示例,创建时请按照真实信息填写,否…

Java 入门指南:异常处理(Exception Handling)

异常处理是一种处理运行时错误的机制,是处理运行时错误的有效方法之一,这样可以保留应用程序的常规流程。 Java为异常设计了一套 异常处理机制(Exception Handling),当程序运行过程中发生一些异常情况时,程…

联华证券-美联储降息补贴:额外补贴,美元短期走势或保持稳定

市场进一步确信美联储9月的加息举措,即便对加息幅度的预测并不一致。 当地时间8月23日,美联储主席鲍威尔在Jackson Hole年度会议中发出迄今为止最强烈的降息信号:为避免国内劳动力市场进一步疲弱,美联储打算采取行动,…

Spring(面试篇)

目录 什么是Spring? Spring的两大核心概念 Spring框架的设计目标,设计理念,和核心是什么 Spring的优缺点是什么? Spring由哪些应用场景 Spring由哪些模块组成? Spring框架中都用到了那些设计模式? …

Battery Cycle Life Prediction From Initial Operation Data

这个例子展示了如何使用线性回归(一种监督机器学习算法)预测快速充电锂离子电池的剩余循环寿命。使用基于物理的建模方法预测锂离子电池的循环寿命是非常复杂的,因为不同的操作条件和显著的设备可变性,即使是来自同一制造商的电池。对于这种情况&#xf…

2023高教社杯数学建模国赛C题详细代码 文章 数据教学 保姆级手把手包含文档格式 2024数模国赛教学:蔬菜类商品的自动定价和补货决策

本系列专栏将包括两大块内容 第一块赛前真题和模型教学,包括至少8次真题实战教学,每期教学专栏的最底部会提供完整的资料百度网盘包括:真题、数据、可复现代码以及文章. 第二块包括赛中思路、代码、文章的参考助攻, 会提供2024年高教社国赛各个赛题的全套参考内容(一般36h内更新…

JavaWeb学习——事务管理、AOP学习

目录 一、事务管理 1、事务回顾 2、事务进阶 a、rollbackFor属性 b、propagation属性 二、AOP学习 1、基础了解 2、AOP进阶 一、事务管理 1、事务回顾 事务的概念:事务必须服从ACID原则。ACID指的是原子性(atomicity)、一致性&#xf…

Linux网络编程:多路转接--poll/epoll

1. poll poll也是一种多路转接的方案,解决了select的fd有上限和每次调用都要重新设置关心的fd的问题。 2. poll接口 #include int poll(struct pollfd* fds, nfds_t nfds, int timeout); 参数:fds:可以看成是动态数组/数组/结构体数组 nfds&…

【生日视频制作】一群美女挥手拉蓝横幅条幅AE模板修改文字软件生成器教程特效素材【AE模板】

一群美女挥手拉蓝条横幅生日视频制作教程AE模板修改文字生成器 怎么如何做的【生日视频制作】一群美女挥手拉蓝横幅条幅AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频

Ai+若依(系统工具-->表单构建):【02篇】

系统工具 表单构建 介绍 允许用户通过拖放等可视化操作创建表单,比如用来收集数据的表格或调查问卷。 可以自定义表单的各个部分,比如添加不同的输入项和设置验证规则,无需编写代码。 提供了导出数据、导入数据、分享表单和设置权限的功能,方便数据管理和共享。 案例 通…

RoboCopy文件快速拷贝工具

RoboCopy是Windows平台(从Windows Vista/Window 7开始)自带的文件快速拷贝工具,它是xcopy命令工具的升级版,解除了xcopy拷贝文件时4GB的容量限制,同时,又支持多线程、给文件夹制作镜像、复制指定日期的文件等功能。 1 全部拷贝 假设从alice文件夹,全部拷贝到bob文件夹,则…

leetcode 80 删除有序数组中的重复项 II

正文 仍旧使用双指针, 思想与 leetcode 26 删除有序数组中的重复项 一致。只是此时因为要求保留重复元素两次,我们的左侧指针可以从第二个数据开始,且右侧指针需要和两个元素的值进行判断。 class Solution:def removeDuplicates(self, nums…

WPF—资源的使用

资源的使用 资源是可以在应用中的不同位置重复使用的对象。 资源的示例包括画笔和样式。 <Window.Resources><!--定义颜色资源--><SolidColorBrush x:Key"MyBrush" Color"#05E0E9"/><!--定义样式资源--><Style TargetType&quo…

前端技术(五)—— 使用Node.js编写简单的项目

一、 初始化项目 1. 创建项目 ⑴ 新建 api_kjzt_server 文件夹作为项目根目录&#xff0c;并初始化包管理配置文件 并在项目根目录中运行如下的命令&#xff0c;初始化包管理配置文件&#xff1a; npm init -y⑵ 运行如下的命令&#xff0c;安装特定版本的 express npm i e…

企业级WEB应用服务器TOMCAT详解

一、什么是TOMCAT 1.1来源 Tomcat是Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;的Jakarta 项目中的一个核心项目&#xff0c;由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持&#xff0c;最新的Servlet 和JSP 规范总是能…

A Neural Probabilistic Language Model

摘要 统计语言建模的一个目标是学习单词序列的联合概率函数。由于维度的诅咒&#xff0c;这在本质上是困难的:我们建议用它自己的武器来对抗它。在提出的方法中&#xff0c;人们同时学习(1)每个单词的分布式表示&#xff08;词向量&#xff09;(即单词之间的相似性)以及(2)表示…

TypeScript 类型注解(二)

一、TypeScript类型约束--对象 对象其实和数组类似&#xff0c;不是限制对象本身的类型&#xff0c;而是对对象属性类型进行限制 结构简化&#xff1a; 对对象做类型限制的好处&#xff1a; 大家都学习过一段时间编程了&#xff0c;会发现咱们经常操作的类型就是对象&#xf…

使用miniconda构建数据科学环境

背景 数据科学中&#xff0c;不同时期项目代码往往是由不同的版本的python和第三方数据科学包构建&#xff0c;这些不同版本往往会存在兼容性问题&#xff0c;要运行这些代码&#xff0c;需要管理不同的版本的安装包。Conda是一个开源的包管理和环境管理系统&#xff0c;环境管…

Linux | 编译和使用自定义动静态库的全面解析

新竹高于旧竹枝&#xff0c;全凭老干为扶持。 - 《新竹》(郑燮) 2024.8.25 目录 1、静态库和动态库简介 静态库&#xff08;.a&#xff09;&#xff1a; 动态库&#xff08;.so&#xff09;&#xff1a; 动态库和静态库的比较&#xff1a; 2、静态库的生成和使用&#xff…

GCB | 首次揭示!气候变化对常绿和落叶植物物候差异化影响的机制

气候变化引起的植物物候改变已对全球范围内生物多样性和生态系统产生重大影响&#xff08;Nature高引文章 | 北京大学朴世龙院士等&#xff1a;全球变暖对植被物候的影响及其机制&#xff1b;Nature Ecology & Evolution | 南京大学张永光教授团队揭示延长的植被物候期受CO…