1.3.OpenCV技能树--第一单元--图像的基础操作(基础篇)

文章目录

  • 1.文章内容来源
  • 2.图像的基本操作
    • 2.1.图像加载
    • 2.2.图像显示
    • 2.3.数据读取
    • 2.4.截取图像
    • 2.5.颜色通道提取
      • 2.5.1.保留红色处理
      • 2.5.2.保留绿色处理
      • 2.5.3.保留蓝色处理
  • 3.易错点总结与反思

1.文章内容来源

1.题目来源:
2.资料来源:https://edu.csdn.net/skill/opencv/opencv-819f137c35c64f76945bcd7e60d37807?category=657&typeId=20810#___44

2.图像的基本操作

2.1.图像加载

#%%
#图像显示
import cv2 
img = cv2.imread(r"cv.jpg")
print(type(img))#打印图像类型
print(img)#打印图像灰度值

在这里插入图片描述

2.2.图像显示

#%%
#图像显示
import cv2
img = cv2.imread(r"cv.jpg")# 加载图像
#如果图像过大的话可以进行设置
cv2.namedWindow('Test_Figure', 0)#设定图像    
cv2.resizeWindow('Test_Figure', 900, 600)   # 自己设定窗口图片的大小
cv2.imshow("Test_Figure",img)# 图像的显示,也可以创建多个窗口
cv2.waitKey(0)#等待时间,按任意键终止
cv2.destroyAllWindows()#销毁窗口

在这里插入图片描述

2.3.数据读取

imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称,第二个参数表示加载的图像是什么类型,支持常见的三个参数值
IMREAD_UNCHANDED(<0) 表示加载原图,不做任何改变
IMREAD_GRAYSCALE(0) 表示把原图作为灰度图像加载进来
IMREAD_COLOR(>0) 表示把原图作为 RGB 图像加载进来
#%%
#数据读取
import cv2
img = cv2.imread(r"cv.jpg",cv2.IMREAD_GRAYSCALE)#设置为灰色显示
print(img)#打印灰度矩阵

在这里插入图片描述
还可以对图片进行输出

#%%
#数据读取
import cv2
img = cv2.imread(r"cv.jpg",cv2.IMREAD_GRAYSCALE)#设置为灰色显示
cv2.namedWindow('Test_Figure', 0)#设定图像    
cv2.resizeWindow('Test_Figure', 900, 600)   # 自己设定窗口图片的大小
cv2.imshow("Test_Figure",img)# 图像的显示,也可以创建多个窗口
cv2.waitKey(0)#等待时间,按任意键终止
cv2.destroyAllWindows()#销毁窗口
print(img)#打印灰度矩阵

在这里插入图片描述

2.4.截取图像

#%%
#截取部分图像
import cv2
img = cv2.imread(r"cv.jpg")#加载图像
cat = img[0:200, 0:200]#截取部分图像
cv2.imshow("cat_Figure",cat)# 图像的显示,也可以创建多个窗口
cv2.waitKey(0)#等待时间,按任意键终止
cv2.destroyAllWindows()#销毁窗口

在这里插入图片描述

2.5.颜色通道提取

#%%
#颜色通道提取split()函数
import cv2
img = cv2.imread(r"cv.jpg")
b,g,r = cv2.split(img)
print(r,g,b)

在这里插入图片描述

2.5.1.保留红色处理

#%%
#保留红色处理
import cv2
img = cv2.imread(r"cv.jpg")
imgR = img.copy()
# 注意参数的变化
imgR[:,:,0] = 0
imgR[:,:,1] = 0
cv2.namedWindow('Red Color', 0)#设定图像    
cv2.resizeWindow('Red Color', 900, 600)   # 自己设定窗口图片的大小
cv2.imshow('Red Color',imgR)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

2.5.2.保留绿色处理

#%%
#保留绿色处理
import cv2
img = cv2.imread(r"cv.jpg")
imgG = img.copy()
# 注意参数的变化
imgG[:,:,0] = 0
imgG[:,:,2] = 0
cv2.namedWindow('Green Color', 0)#设定图像    
cv2.resizeWindow('Green Color', 900, 600)   # 自己设定窗口图片的大小
cv2.imshow('Green Color',imgG)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

2.5.3.保留蓝色处理

#%%
#保留蓝色处理
import cv2
img = cv2.imread(r"cv.jpg")
imgB= img.copy()
# 注意参数的变化
imgB[:,:,1] = 0
imgB[:,:,2] = 0
cv2.namedWindow('Blue Color', 0)#设定图像    
cv2.resizeWindow('Blue Color', 900, 600)   # 自己设定窗口图片的大小
cv2.imshow('Blue Color',imgB)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

3.易错点总结与反思

总结与反思:
1.首先需要牢记数据读取的几个参数值,IMREAD_UNCHANDED/IMREAD_GRAYSCALE/IMREAD_COLOR各是什么意思
2.图像是由高维的连续的灰度值建立而成的。
3.通过split()函数可以对图像的颜色通过进行一个截取。
4.图像由RGB三种颜色组成,我们可以只显示一种颜色/两种颜色/三种颜色等等
5.如何显示/不显示某种颜色呢,就是将色度矩阵的最后一列进行操作,对应的数如下Blue(0),Green(1),Red(2)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软技能继续挑战网络安全领域

根据 ISACA 的一份新报告&#xff0c;新的网络安全调查结果指出了网络安全专家缺乏的领域&#xff0c;其中人际技能、云计算和安全措施是网络安全专家最突出的技能缺陷。 59% 的网络安全领导者表示他们的团队人手不足。50% 的受访者表示有非入门级职位的职位空缺&#xff0c;而…

八大排序源码(含优化)

文章目录 1、直接插入排序2、希尔排序3、选择排序4、冒泡排序5、堆排序6、快速排序快速排序递归实现霍尔法挖坑法前后指针法快速排序小区间优化 快速排序非递归实现 7、归并排序归并排序递归实现归并排序非递归 8、计数排序 大家好&#xff0c;我是纪宁&#xff0c;这篇文章是关…

GPT系列论文解读:GPT-2

GPT系列 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一系列基于Transformer架构的预训练语言模型&#xff0c;由OpenAI开发。以下是GPT系列的主要模型&#xff1a; GPT&#xff1a;GPT-1是于2018年发布的第一个版本&#xff0c;它使用了12个Transformer…

VUE3照本宣科——认识VUE3

VUE3照本宣科——认识VUE3 前言一、命令创建项目1.中文官网2.菜鸟教程 二、VUE3项目目录结构1.public2.src&#xff08;1&#xff09;assets&#xff08;2&#xff09;components 3. .eslintrc.cjs4. .gitignore5. .prettierrc.json6.index.html7.package.json8.README.md9.vit…

进程调度算法之时间片轮转调度(RR),优先级调度以及多级反馈队列调度

1.时间片轮转调度算法(RR) round Robin 1.算法思想 公平地、轮流地为各个进程服务&#xff0c;让每个进程在一定时间间隔内都可以得到响应。 2.算法规则 按照各进程到达就绪队列的顺序&#xff0c;轮流让各个进程执行一个时间片&#xff08;如100ms&#xff09;。 若进程未…

Linux 文件上传、下载

1、通过FinalShell工具虚拟机进行数据交换 在FinalShell软件的下方窗体中&#xff0c;提供了Linux的文件系统视图&#xff0c;可以方便的&#xff1a; 浏览文件系统&#xff0c;找到合适的文件&#xff0c;右键点击下载&#xff0c;即可传输到本地电脑 浏览文件系统&#xff0…

数值分析学习笔记——绪论【华科B站教程版本】

绪论 数值分析概念 用计算机求解数学问题的数值方法和理论 三大科学研究方法 实验理论分析科学计算&#xff08;用计算机去辅助研究&#xff09;&#xff1a;数值方法计算机 解析解和近似解 解析解&#xff1a;使用数学方法求出或推导出的结果&#xff0c;往往可以求解出…

【STL】list常见用法及模拟实现(附完整源码)

目录 前言1. list介绍及使用1.1 list介绍1.2 list使用 2. list模拟实现2.1 迭代器功能分类2.2 list迭代器模拟实现2.2.1 普通迭代器2.2.2 const迭代器 3. list和vector区别4. 源码 前言 这篇文章我们继续STL中容器的学习&#xff0c;这篇文章要讲解的是list。 1. list介绍及使用…

软件工程与计算总结(三)示例项目描述

本节介绍一个标准的项目描述&#xff0c;大家可以作为蓝本学习~ 目录 一.背景 二.目标 三.系统用户 四.用户访谈要点 1.收银员 2.客户经理 3.总经理 4.系统管理员 五.项目实践过程 一.背景 A是一家刚刚发展起来的小型连锁商店&#xff0c;其前身是一家独立的小百货门面…

SDL2绘制ffmpeg解析的mp4文件

文章目录 1.FFMPEG利用命令行将mp4转yuv4202.ffmpeg将mp4解析为yuv数据2.1 核心api: 3.SDL2进行yuv绘制到屏幕3.1 核心api 4.完整代码5.效果展示6.SDL2事件响应补充6.1 处理方式-016.2 处理方式-02 本项目采用生产者消费者模型&#xff0c;生产者线程&#xff1a;使用ffmpeg将m…

Python 无废话-基础知识流程控制语句

If 流程控制语句 最常见的控制流语句是if 语句。在自然语言中&#xff0c;if 语句念起来可能是&#xff1a;“如果条件为真&#xff0c;执行子句中的代码。”在Python中的条件语句用于根据特定条件执行不同的代码块条件。 用代码描述如下&#xff1a; cost 60000 if cost &…

代码随想录Day12 二叉树 LeetCode T102二叉树的层序遍历 T226 翻转二叉树 T101 对称二叉树

本文思路和详细讲解来自于:代码随想录 (programmercarl.com) LeetCode T102 二叉树的层序遍历 题目链接:102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 本题使用队列辅助完成,讲解主要函数CheckOrder:首先判断root是否为空,是就直接返回,然后创建…

Linux下的基本指令

目录 一、基本指令 1.1 ls指令 1.2 pwd指令 1.3 cd指令 1.4 touch指令 1.5 mkdir指令&#xff08;重要&#xff09; 1.6 rmdir指令 && rm 指令&#xff08;重要&#xff09; 1.7 man指令&#xff08;重要&#xff09; 1.8 cp指令&#xff08;重要&#xff09;…

安卓教材学习

文章目录 教材学习第一行代码 Android 第3版环境配置gradle配置下载包出现问题 教材学习 摘要&#xff1a;选了几本教材《第一行代码 Android 第3版》&#xff0c;记录一下跑案例遇到的问题&#xff0c;和总结一些内容。 第一行代码 Android 第3版 环境配置 gradle配置 gradl…

了解基于Elasticsearch 的站内搜索,及其替代方案

对于一家公司而言&#xff0c;数据量越来越多&#xff0c;如果快速去查找这些信息是一个很难的问题&#xff0c;在计算机领域有一个专门的领域IR&#xff08;Information Retrival&#xff09;研究如何获取信息&#xff0c;做信息检索。在国内的如百度这样的搜索引擎也属于这个…

gitgitHub

在git中复制CtrlInsert、粘贴CtrlShif 一、用户名和邮箱的配置 查看用户名 &#xff1a;git config user.name 查看密码&#xff1a; git config user.password 查看邮箱&#xff1a;git config user.email 查看配置信息&#xff1a; $ git config --list 修改用户名 git co…

Android 开发错误集合

&#x1f525; 开发错误集合一 &#x1f525; Caused by: java.lang.ClassNotFoundException: Didnt find class "com.mask.app.ui.LoginRegisterActivity" on path: DexPathList[[zip file "/data/app/~~NMvHVhj8V6-HwGbh2amXDA/com.mask.app-PWbg4xIlETQ3eVY…

全志ARM926 Melis2.0系统的开发指引⑦

全志ARM926 Melis2.0系统的开发指引⑦ 编写目的11. 调屏11.1. 调屏步骤简介11.1.1. 判断屏接口。11.1.2. 确定硬件连接。11.1.3. 配置显示部分 sys_config.fex11.1.3.1. 配置屏相关 IO 11.1.4. Lcd_panel_cfg.c 初始化文件中配置屏参数11.1.4.1. LCD_cfg_panel_info11.1.4.2. L…

存在负权边的单源最短路径的原理和C++实现

负权图 此图用朴素迪氏或堆优化迪氏都会出错&#xff0c;floyd可以处理。 负环图 但floyd无法处理负权环&#xff0c;最短距离是无穷小。在环上不断循环。 经过k条边的最短距离&#xff08;可能有负权变&#xff09; 贝尔曼福特算法(bellman_ford)就是解决此问题的。 原理 …

(详解)Linux常见基本指令(1)

目录 目录&#xff1a; 1:有关路径文件下的操作(查看&#xff0c;进入) 1.1 ls 1.2 pwd 1.3 cd 2:创建文件或目录 2.1 touch 2.2 mkdir 3:删除文件或目录 3.1 rm与rmdir 4:复制剪切文件 4.1 cp 4.2 mv 1:有关路径的操作 1 ls 指令 语法&#xff1a;ls [选项] [目录或文…